2011-11-19 102 views
4

我有一個代碼,它的工作完美的,當我設置像.xlsx等輸出文件的extansion,但是當我將其更改爲」 .xls的,我必須打開前窗文件在MSExcel文件不正確(文件格式不正確),然後很多不良的編碼字符(如日本等)。導出Excel的.xls和.XLSX EPPlus .NET

有人有這個問題嗎?有解決方案嗎?

_currentContext.Response.Clear(); 
    _currentContext.Response.ClearContent(); 
    _currentContext.Response.ClearHeaders(); 
    _currentContext.Response.AddHeader("content-disposition", "attachment; filename=FileName.xlsx"); 
    _currentContext.Response.ContentEncoding = System.Text.Encoding.UTF8; 
    _currentContext.Response.ContentType = "application/ms-excel"; 
    _currentContext.Response.AddHeader("Content-Transfer-Encoding", "binary"); 
    _currentContext.Response.BinaryWrite(_package.GetAsByteArray()); 
    _currentContext.Response.Flush(); 
    _currentContext.Response.End(); 

有一刻 - 當我在本地機器上以xls導出它時,一切正常。當我在遠程服務器上嘗試它時,我只能正確導出到xlsx擴展。

回答

4

發生這種情況是因爲AFAIK EPPlus只能導出XLSX(OpenXML格式的Excel 2007及更高版本)...... whils XLS是舊的二進制Excel-Formt,因此Excel沒有正確地說格式錯誤...

編輯 - 作爲可能的MIME類型嘗試這些:

application/vnd.ms-excel 
application/x-msexcel 
application/ms-excel 
application/msexcel 
application/x-excel 
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 
+0

一個moment-,一切工作正常。當我在遠程服務器上嘗試它時,我只能正確導出到xlsx擴展。 – FSou1

+0

@ FSou1看到上面的編輯... – Yahia

0

它會提示不正確的文件擴展名。但雖然.xls是正確的擴展名,不用擔心點擊YES。 您的文件可以順利打開,無數據損壞。當我導出爲XLS我的本地機器上

//Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
       Response.ContentType = "application/x-msexcel";