【问题标题】:Opening Excel File by ClosedXML.dll is showing error "Excel found unreadable content"通过 ClosedXML.dll 打开 Excel 文件显示错误“Excel 发现无法读取的内容”
【发布时间】:2015-06-01 07:07:04
【问题描述】:

您好,我使用 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();
    }
}

【问题讨论】:

    标签: c# import-from-excel closedxml


    【解决方案1】:

    经过大量工作后,我从 msdn 博客站点找到了解决方案。那是

    Response.Flush();
    Response.SuppressContent = true;
    

    即使我不知道 SuppressContent 属性的内部工作原理,但它确实对我有用。它可能会删除我的 Excel 表格的一些样式并减小我的文件的大小。而且我还删除了 Response.End() 因为它正在抛出线程中止异常。

    【讨论】:

      【解决方案2】:

      可能您忘记将流的位置设置为 0。

      System.IO.MemoryStream stream = new System.IO.MemoryStream();
      document.SaveAs(stream);
      stream.Position = 0;
      stream.Close();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        相关资源
        最近更新 更多