2015-06-01 117 views
1

嗨我已經使用ClosedXML.dll創建了一個Excel文件,當我要打開該文件時,它顯示「Excel發現不可讀的內容」消息。我的文件內容有瑞典文。我不知道根源是什麼?有什麼方法可以設置語言嗎?如何刪除該警告,請幫助我。這是代碼捕捉。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(); 
    } 
} 

回答

2

很多東西后,我發現從MSDN博客網站的解決方案。那是

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

即使我不知道SuppressContent屬性的內部作品,但它確實對我有用。它可能會刪除我的Excel表格的一些樣式,並減少我的文件的大小。而且我也刪除了Response.End(),因爲它拋出了線程異常異常。

0

也許你忘了流的位置設置爲0。

System.IO.MemoryStream stream = new System.IO.MemoryStream(); 
document.SaveAs(stream); 
stream.Position = 0; 
stream.Close(); 
相關問題