源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

npoi2.0将datatable对象转换为excel2007示例

  • 时间:2021-12-02 11:57 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:npoi2.0将datatable对象转换为excel2007示例
NPOI 2.0将DataTable对象转换为Excel 2007文件提供下载
[u]复制代码[/u] 代码如下:
using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System.IO;         private Stream RenderDataTableToExcel(DataTable SourceTable)         {             XSSFWorkbook workbook = null;             MemoryStream ms = null;             ISheet sheet = null;             XSSFRow headerRow = null;             try             {                 workbook = new XSSFWorkbook();                 ms = new MemoryStream();                 sheet = workbook.CreateSheet();                 headerRow = (XSSFRow)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)                 {                     XSSFRow dataRow = (XSSFRow)sheet.CreateRow(rowIndex);                     foreach (DataColumn column in SourceTable.Columns)                         dataRow.CreateCell(column.Ordinal).SetCellValue(row[column].ToString());                     ++rowIndex;                 }                 //列宽自适应,只对英文和数字有效                 for (int i = 0; i <= SourceTable.Columns.Count; ++i)                     sheet.AutoSizeColumn(i);                 workbook.Write(ms);                 ms.Flush();             }             catch (Exception ex)             {                 return null;             }             finally             {                 ms.Close();                 sheet = null;                 headerRow = null;                 workbook = null;             }             return ms;         }         private void DownloadExcel(DataTable dt,string reportName)         {                 Stream s = RenderDataTableToExcel(dt);                 if (s != null)                 {                     MemoryStream ms = resultStream.result as MemoryStream;                     Response.AddHeader("Content-Disposition", string.Format("attachment;filename=" + HttpUtility.UrlEncode(reportName) + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"));                     Response.AddHeader("Content-Length", ms.ToArray().Length.ToString());                     Response.BinaryWrite(ms.ToArray());                     Response.Flush();                     ms.Close();                     ms.Dispose();                 } else Response.Write("出错,无法下载!");         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部