当一个按钮被点击时,我正在尝试提供一个文档,但是excel工作表没有被下载。什么都没有发生,没有错误或者任何东西,我确实把它包装在一个尝试中,但是它没有给出任何错误,它到达了Response.Flush()
和Response.End()
,什么也没有发生。
用于构建excel工作表的表是从数据库导入的数据表。
我正在使用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();
}
}
发布于 2017-09-19 21:44:23
这是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
}
}
https://stackoverflow.com/questions/46299210
复制相似问题