zoukankan      html  css  js  c++  java
  • 一个导出Excel的类

    需要引入

    using NPOI.HSSF.UserModel;

     public class ExcelHelper
        {
            /// <summary>
            /// 
            /// </summary>
            /// <param name="dt">需要导出的DataTable</param>
            /// <param name="ColName">导出的表格列名</param>
            /// <param name="Filename">导出的表格文件名称_默认当前日期不带时间_注:文件名不能有:号</param>
            /// <param name="Sheetname">导出的Sheet名</param>
            /// <returns>成功返回_异常返回-1</returns>
            public int OutPutExcelByDataTable(DataTable dt, List<string> ColName, string Filename = "", string Sheetname = "")
            {
                try
                {
                    HSSFWorkbook workbook = new HSSFWorkbook();
                    string sheetname = Sheetname != "" ? Sheetname : dt.TableName;
                    NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet(sheetname);
                    NPOI.SS.UserModel.IRow r0 = sheet.CreateRow(0);
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        if (ColName.Count > i)
                        {
                            r0.CreateCell(i).SetCellValue(ColName[i]);
                        }
                        else
                        {
                            r0.CreateCell(i).SetCellValue(dt.Columns[i].ColumnName);
                        }
                    }
                    int k = 1;
                    foreach (DataRow row in dt.Rows)
                    {
                        NPOI.SS.UserModel.IRow Row = sheet.CreateRow(k);
                        for (int j = 0; j < dt.Columns.Count; j++)
                        {
                            Row.CreateCell(j).SetCellValue(row[j].ToString());
                        }
                        k++;
                    }
                    dt = null;
                    using (MemoryStream ms = new MemoryStream())
                    {
                        workbook.Write(ms);
                        string filename = Filename != "" ? Filename : DateTime.Now.Date.ToShortDateString();
                        HttpContext.Current.Response.ContentType = "application/x-excel";
                        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename + ".xls");
                        HttpContext.Current.Response.BinaryWrite(ms.ToArray());
                        HttpContext.Current.Response.End();
                        return 0;
                    }
                }
                catch
                { return -1; }
    
            }
        }
  • 相关阅读:
    微信Jssdk 认证签名
    枚举的变换
    mysql 事务
    Java中的堆和栈
    mysql-索引
    mysql-事务隔离 为什么你改了我还看不见
    mysql 一次更新语句是如何执行的
    mysql-一条sql的执行过程
    随笔
    设计模式之装饰者
  • 原文地址:https://www.cnblogs.com/gouyanfeng/p/3210162.html
Copyright © 2011-2022 走看看