NPOI Excel模板填充数据后导出
来源:互联网 发布:沂南知豆租赁怎么办理 编辑:程序博客网 时间:2024/04/29 10:50
引入Npoi包 添加引用dotnet2 或dotnet4
Excel模板 ( .xlsx)
public void NpoiExportExcel()
{
string sql = "exec ZonePlaza";
DataTable dt = DataFactory.Database().FindTableBySql(sql);
var fileName = "asdasda";
var exportTemplatePath = "~/FileTemplate/汇总表.xlsx";
DownloadExcel(fileName, dt, exportTemplatePath);
}
public void DownloadExcel(string reportName, DataTable dt, string exportTemplatePath)
{
Stream s = RenderDataTableToExcel(dt, exportTemplatePath);
if (s != null)
{
MemoryStream ms = s as MemoryStream;
HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment;filename=" + HttpUtility.UrlEncode(reportName) + DateTime.Now.ToString("yyyyMMdd") + ".xlsx"));
HttpContext.Current.Response.AddHeader("Content-Length", ms.ToArray().Length.ToString());
HttpContext.Current.Response.BinaryWrite(ms.ToArray());
HttpContext.Current.Response.Flush();
ms.Close();
ms.Dispose();
}
else
HttpContext.Current.Response.Write("出错,无法下载!");
}
public Stream RenderDataTableToExcel(DataTable sourceTable, string exportTemplatePath)
{
XSSFWorkbook workbook = null;
MemoryStream ms = null;
ISheet sheet = null;
XSSFRow headerRow = null;
string templetFileName = HttpContext.Current.Server.MapPath(exportTemplatePath);
FileStream file = new FileStream(templetFileName, FileMode.Open, FileAccess.Read);
workbook = new XSSFWorkbook(file);
try
{
ms = new MemoryStream();
sheet = workbook.GetSheet("Sheet1");
int rowIndex = sheet.LastRowNum;
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)
{
throw;
return null;
}
finally
{
ms.Close();
sheet = null;
headerRow = null;
workbook = null;
}
return ms;
}
- NPOI Excel模板填充数据后导出
- NPOI 根据模板导出Excel
- 使用NPOI导出Excel模板
- NPOI 通过excel模板写入数据并导出
- NPOI导出数据到Excel
- npoi实现数据导出Excel
- 利用JXLS根据模板填充数据导出Excel实例
- NPOI制作特定模板导出excel
- 使用NPOI导出数据到Excel
- 使用NPOI操作Excel导入导出数据
- 使用npoi.dll导出数据到excel
- NPOI 通用导出数据到Excel
- 30万以内数据 NPOI导出Excel
- C# 通过NPOI导入导出数据EXCEL
- C# NPOI Excel固定模板写入数据
- 初探:使用NPOI导出Excel(已有Excel模板)
- C#使用NPOI读取excel模板,并导出excel
- NPOI操作EXCEL 将Table中数据导出到Excel
- hibernate之关系映射方式
- 读《精通JavaScript+jQuery》笔记二
- nginx使用image_filter模块配置图片缩略图
- 当TextView中文字过长,需要显示为省略号
- posix进程间的通信 各信号意义
- NPOI Excel模板填充数据后导出
- hdu5521 Meeting
- [Android] Material 风格的 Dialog 的使用
- 315晚会报道的无人机是怎么被劫持的?
- sed命令常见使用杂记
- 链表中倒数第k个结点
- mongodb部署
- Java Annotation —— 注解实战
- 终端下使用gradle编译android应用