zoukankan      html  css  js  c++  java
  • 导出NPOI

    table:表

    dataName:文件名

    listNme:列名

    public void RenderToExcel(DataTable table, string dataName, string[] listNme)
    {
    var countL = listNme.Length;
    HSSFWorkbook workbook = new HSSFWorkbook();
    ISheet sheet = workbook.CreateSheet(dataName);//创建工作表
    sheet.SetColumnWidth(1, 40 * 256);
    sheet.SetColumnWidth(2, 30 * 256);
    sheet.SetColumnWidth(3, 30 * 256);
    sheet.SetColumnWidth(4, 20 * 256);
    sheet.SetColumnWidth(5, 20 * 256);

    #region 标题
    IRow row = sheet.CreateRow(0);//在工作表中添加一行
    for (int i = 0; i < listNme.Length; i++)
    {
    ICell cell = row.CreateCell(i);//在行中添加一列
    cell.SetCellValue(listNme[i]);//设置列的内容

    }
    #endregion

    #region 填充数据
    for (int i = 1; i <= table.Rows.Count; i++)//遍历DataTable行
    {
    DataRow dataRow = table.Rows[i - 1];
    row = sheet.CreateRow(i);//在工作表中添加一行
    var n = table.Columns.Count;
    for (int j = 0; j < table.Columns.Count; j++)//遍历DataTable列
    {

    ICell cell = row.CreateCell(j);//在行中添加一列
    if (countL < n)
    {
    if (j<5)
    {
    if (j >= 3)
    {
    cell.SetCellValue(dataRow[j + 1].ToString());//设置列的内容
    }
    else
    {
    cell.SetCellValue(dataRow[j].ToString());//设置列的内容
    }
    }

    }
    else
    {
    cell.SetCellValue(dataRow[j].ToString());//设置列的内容

    }

    }
    }
    #endregion

    #region 输出到Excel
    MemoryStream ms = new MemoryStream();
    workbook.Write(ms);
    Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.xls", HttpUtility.UrlEncode(dataName + "_" + DateTime.Now.ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8)));
    Response.BinaryWrite(ms.ToArray());
    Response.End();
    //var file = new FileStream("C:\Users\Administrator\Desktop\" + dataName + ".xls", FileMode.Create);
    //workbook.Write(file);
    //file.Close();
    workbook = null;
    ms.Close();
    ms.Dispose();
    #endregion

    }

  • 相关阅读:
    [你必须知道的.NET]第二十五回:认识元数据和IL(中)
    [技术速递]体验微软开源范例Oxite
    一本去繁存精的设计书《C# 3.0设计模式》
    [你必须知道的.NET]第二十四回:认识元数据和IL(上)
    泛型KMP算法
    实现语音视频录制(demo源码)
    AutoResetEvent 的诡异行为
    调用非托管dll常出现的bug及解决办法
    如何实现离线文件?
    广播与P2P通道(上) 问题与方案
  • 原文地址:https://www.cnblogs.com/xwchengc/p/4597226.html
Copyright © 2011-2022 走看看