• 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

  • 相关阅读:
    盛最多水的容器
    字符串的排序
    整数拆分
    TCP和UDP编程
    旋转图像
    非递减数列
    不同路径2
    不同路径
    压缩拉伸图片
    Java对List分割及使用Spring多线程调用
  • 原文地址:https://www.cnblogs.com/Archosaur/p/DataTableToExcle.html
Copyright © 2020-2023  润新知