• test


    DataTable dt = new DataTable();
    DataColumn[] cols = new DataColumn[] {
    new DataColumn("name",typeof(string)),
    new DataColumn ("birthday",typeof(DateTime)),
    new DataColumn ("score",typeof(int))
    };
    dt.Columns.AddRange(cols);
    Random rnd = new Random();

    for (int i = 0; i < 5; i++)
    {
    DataRow row = dt.NewRow();
    object[] items = new object[] {
    "小明",
    DateTime.Now ,
    rnd.Next(100)
    };
    row.ItemArray = items;
    dt.Rows.Add(row);
    }

    LwNpoiHelper.RenderDataTableToExcel(dt, "TR.xls");

    public partial class LwNpoiHelper
    {
    public static Stream RenderDataTableToExcel(DataTable SourceTable)
    {
    HSSFWorkbook workbook = new HSSFWorkbook();
    MemoryStream ms = new MemoryStream();
    ISheet sheet = workbook.CreateSheet();
    IRow headerRow = sheet.CreateRow(0);

    // handling header.
    foreach (DataColumn column in SourceTable.Columns)
    headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);

    // handling value.
    int rowIndex = 1;

    foreach (DataRow row in SourceTable.Rows)
    {
    IRow dataRow = sheet.CreateRow(rowIndex);

    foreach (DataColumn column in SourceTable.Columns)
    {
    if (column.DataType == typeof(int))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((int)row[column]);
    }
    else if (column.DataType == typeof(float))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((float)row[column]);
    }
    else if (column.DataType == typeof(double))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((double)row[column]);
    }
    else if (column.DataType == typeof(Byte))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((byte)row[column]);
    }
    else if (column.DataType == typeof(UInt16))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((UInt16)row[column]);
    }
    else if (column.DataType == typeof(UInt32))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((UInt32)row[column]);
    }
    else if (column.DataType == typeof(UInt64))
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue((UInt64)row[column]);
    }
    else if (column.DataType == typeof(DateTime))
    {
    //dataRow.CreateCell(column.Ordinal).SetCellValue((DateTime)row[column]);

    IDataFormat dataformat = workbook.CreateDataFormat();
    ICellStyle style = workbook.CreateCellStyle();

    dataRow.CreateCell(column.Ordinal).SetCellValue((DateTime)row[column]);

    style.DataFormat = dataformat.GetFormat("yyyy-MM-dd");
    dataRow.GetCell(column.Ordinal).CellStyle = style;

    }
    else
    {
    dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
    }


    // dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());
    }

    rowIndex++;
    }

    workbook.Write(ms);
    ms.Flush();
    ms.Position = 0;

    sheet = null;
    headerRow = null;
    workbook = null;

    return ms;
    }

  • 相关阅读:
    关于二进制——lowbit运算
    代码风格
    焦作区域赛——反思及期望
    第一次参加acm区域赛
    0——1分数问题规划
    [FZYZOJ 1339] 修改密码
    [HDU 1856] More is better
    并查集小结
    [FZYZOJ 1031] 无线网络
    [FZYZOJ 1038] 隧道
  • 原文地址:https://www.cnblogs.com/MiLu/p/6664872.html
Copyright © 2020-2023  润新知