【发布时间】:2016-03-09 10:55:39
【问题描述】:
我在从 ASP .Net 导出 .xlsx 文件时遇到 System.OutOfMemoryException,这是在将数据写入内存流时发生的。
protected void ExportExcel(string strWorkbookName, DataTable dt)
{
try
{
dt.TableName = strWorkbookName;
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt);
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=" + strWorkbookName + ".xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
//HttpContext.Current.Response.SuppressContent = true; // Gets or sets a value indicating whether to send HTTP content to the client.
//HttpContext.Current.ApplicationInstance.CompleteRequest();
Response.End();
}
}
}
catch (Exception ex)
{
string errorMessage = string.Empty;
throw ex;
}
}
wb.SaveAs(MyMemoryStream); 行发生异常
XLWorkbook 类属于 ClosedXML.dll,用于导出 excel 的 v0.69.1.0 库。
参考:https://closedxml.codeplex.com/
有人知道吗!?!
如何解决?
【问题讨论】:
-
你的数据表有多大?
标签: c# asp.net excel memorystream closedxml