我在单击按钮时尝试提供文档,但是没有下载Excel工作表。没有任何事情发生,没有错误或任何事情,我确实将它包装在一个尝试并捕获但它没有发出任何错误,它到达Response.Flush()
和Response.End()
并没有任何反应。
用于构建excel表的表是从DB导入的数据表。
我正在使用ClosedXML
代码
DataTable table = new DataTable();
table = dtResults.Copy();
table.Merge(dtResultsAll);
table.TableName = "LookupData";
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(table);
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attchment;filename=AuditReport.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
答案 0 :(得分:0)
这是ClosedXML中的一个错误。
降级为0.76.0
。
我的代表:
static void Main(string[] args)
{
DataTable table = new DataTable();
table.TableName = "LookupData";
XLWorkbook wb = new XLWorkbook();
wb.Worksheets.Add(table);
// no exception with below line:
//wb.Worksheets.Add("table").Cell(1, 1).SetValue("Hello World");
using (MemoryStream memoryStream = new MemoryStream())
{
wb.SaveAs(memoryStream); // IndexOutOfRangeException here
}
}