使用EPPlus库从数据表生成 excel时出现错误
System.ObjectDisposedException:包对象已关闭并释放,因此无法对此对象或在此包的一部分上打开的任何流执行操作。
我在这里搜索并发现该GetAsByteArray()
函数处理了包对象。请帮助克服这一点。
private void DumpExcel(DataTable tbl)
{
using (ExcelPackage pck = new ExcelPackage())
{
//Create the worksheet
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Demo");
//Load the datatable into the sheet, starting from cell A1.
//Print the column names on row
ws.Cells["A1"].LoadFromDataTable(tbl, true);
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.AddHeader("content-disposition", "attachment; filename=ExcelDemo.xlsx");
Response.AddHeader("content-type", "application/Excel");
Response.ContentType = "application/vnd.xls";
Response.AddHeader("content-length", pck.GetAsByteArray().Length.ToString());
Response.BinaryWrite(pck.GetAsByteArray());
}
}
请注意:我想生成 excel 并将其留给用户将 excel 报告保存在本地计算机上他们想要的任何位置,而不是在服务器上指定保存 excel 的路径。