2011-11-19 77 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";