Excel不希望打开通过ASP输出下载的XLSX文件
我使用ASP MVC3框架,创建一个Excel文件并使用内容类型为“ application / vnd.openxmlformats-officedocument.spreadsheetml.sheet ”的FileResult操作输出它。
当试图打开它时,Excel只是说“ 文件已损坏,无法打开 。”
当我打开用于发送输出的源代码生成的Excel文件时,它没有任何问题。 我也对两个副本的字节进行文件比较,文件是相同的。 我试图将损坏的文件发送给我自己,附件打开正常。
这导致我认为这是头文件或某种Excel / Windows安全配置的问题。
如果是后者,那么我需要一个不会让客户更改安全设置的解决方案。
编辑 - 找到设置:
我发现了什么设置导致了这一点 - “在Excel的信任中心/受保护的视图设置中启用源自Internet的文件的受保护视图” 。
所以我想问题是 - 有没有办法让文件显示可信?
以下是响应标题:
使输出的操作方法:
[HttpPost]
public virtual FileResult Export()
{
try
{
...
string newFilePath = createNewFile(...);
string downloadedFileName = "Report - " + DateTime.Now.ToString("D") + ".xlsx";
return File(newFilePath, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", downloadedFileName);
}
catch (Exception ex)
{
...
}
}
我如何创建Excel文件:
我有一个模板XLSX文件女巫专栏名称和其他工作表中的一些透视图。 从C#创建这个模板的副本,然后调用SQL Server,它使用OLEDB连接器将数据输出到第一个表单中:
set @SQL='insert into OPENROWSET(''Microsoft.ACE.OLEDB.12.0'', ''Excel 12.0;Database=' + @PreparedXLSXFilePath + ';'', ''SELECT * FROM [Data$]'') ...
预先感谢您的帮助。
您需要在Excel文件中使用数字签名。 如何从代码做到这一点是另一个问题。
更多信息在这里:
http://www.delphifaq.com/faq/windows_user/f2751.shtml
链接地址: http://www.djcxy.com/p/46871.html上一篇: Excel doesn't want to open XLSX files downloaded through ASP output
下一篇: type and extension for web delivered Excel 2003 SpreadsheetML file