导出Excel的.xls和.XLSX EPPlus .NET
问题描述:
我有一个代码,它的工作完美的,当我设置像.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扩展。
答
发生这种情况是因为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
答
它会提示不正确的文件扩展名。但虽然.xls是正确的扩展名,不用担心点击YES。 您的文件可以顺利打开,无数据损坏。当我导出为XLS我的本地机器上
//Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.ContentType = "application/x-msexcel";
一个moment-,一切工作正常。当我在远程服务器上尝试它时,我只能正确导出到xlsx扩展。 – FSou1
@ FSou1看到上面的编辑... – Yahia