• Asp.net(DataTable)导Excle


      private static Stream ExportDataTableToExcel(DataTable sourceTable, string sheetName)
            {
                HSSFWorkbook workbook = new HSSFWorkbook();
                MemoryStream ms = new MemoryStream();
                ISheet sheet = workbook.CreateSheet(sheetName);
                IRow headerRow = sheet.CreateRow(0);
                foreach (DataColumn column in sourceTable.Columns)
                {
                    headerRow.CreateCell(column.Ordinal).SetCellValue(column.ColumnName);
                }
                int rowIndex = 1;
    
                foreach (DataRow row in sourceTable.Rows)
                {
                    IRow dataRow = sheet.CreateRow(rowIndex);
    
                    foreach (DataColumn column in sourceTable.Columns)
                    {
                        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;
            }
            
            /// <summary>
             /// DataTable导出到Excel文件[winfrom]
             /// </summary>
             /// <param name="dtSource">源DataTable</param>
             /// <param name="strHeaderText">表头文本</param>
             /// <param name="strFileName">保存位置</param>
             public static void Export(DataTable dtSource, string strHeaderText, string strFileName)
             {
                 using (MemoryStream ms = Export(dtSource, strHeaderText))
                 {
                     using (FileStream fs = new FileStream(strFileName, FileMode.Create, FileAccess.Write))
                     {
                         byte[] data = ms.ToArray();
                         fs.Write(data, 0, data.Length);
                         fs.Flush();
                     }
                 }
             }
            
            /// <summary>
            /// 由DataTable导出Excel[web]
            /// </summary>
            /// <param name="sourceTable">要导出数据的DataTable</param>
            /// <param name="fileName">指定Excel工作表名称</param>
            /// <returns>Excel工作表</returns>
            public static void ExportDataTableToExcel(DataTable sourceTable, string fileName, string sheetName)
            {
                try
                {
                    MemoryStream ms = ExportDataTableToExcel(sourceTable, sheetName) as MemoryStream;
                    HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
                    HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
                    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
                    HttpContext.Current.Response.End();
                    ms.Close();
                    ms = null;
                }
                catch (Exception ex)
                {
    
                    HttpContext.Current.Response.Write(ex);
                }
            }

    这里用的是插件NPOI

  • 相关阅读:
    postgresql数据迁移
    编译安装或者mysql启动时遇到的错误小记
    安装数据库时提示重启删除 以下注册信息则不用重启
    ​sql2008安装提示报错,.必须使用"角色管理工具"安装或配置Microsoft.net.framework 3.5 sp1
    windows10 安装jdk13.0.1 与 apache-jmeter-5.1.1
    Axure RP 9 获取验证码发送倒计时
    PHP 重定向跳转页面使用post传参
    用 PHPExcel 导入excel表格并展示到前台
    当失去焦点时 验证时分秒 并提示
    iptables 防止syn ddos ping攻击
  • 原文地址:https://www.cnblogs.com/Archosaur/p/DataTableToExcle.html
Copyright © 2020-2023  润新知