通过ClosedXML.dll打开Excel文件显示错误“Excel发现不可读的内容”
本文关键字:Excel 发现 dll ClosedXML 打开 文件 错误 显示 通过 | 更新日期: 2023-09-27 17:51:16
嗨,我使用ClosedXML.dll创建了一个excel文件,当我要打开该文件时,它显示"excel发现不可读的内容"消息。我的文件内容有瑞典文本。我不知道根本原因是什么?有办法设置语言吗?如何删除警告,请帮助我。下面是代码快照。
using (XLWorkbook wb = new XLWorkbook())
{
wb.Worksheets.Add(dt); //dt is DataTable
Response.Clear();
Response.ClearHeaders();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename="+fileName+".xlsx");
Response.ContentEncoding = Encoding.UTF8;
using (MemoryStream MyMemoryStream = new MemoryStream())
{
MyMemoryStream.Capacity = (int)MyMemoryStream.Length;
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
在做了很多事情之后,我从msdn博客网站找到了一个解决方案。这是
Response.Flush();
Response.SuppressContent = true;
即使我不知道内部工作的SuppressContent属性,但它真的为我工作。它可能会删除我的excel表格的一些样式,并减少我的文件大小。我还删除了Response.End(),因为它正在抛出线程中止异常。
可能您忘记将流的位置设置为0了。
System.IO.MemoryStream stream = new System.IO.MemoryStream();
document.SaveAs(stream);
stream.Position = 0;
stream.Close();