Excel不希望打开通过ASP输出下载的XLSX文件

我使用ASP MVC3框架,创建一个Excel文件并使用内容类型为“ application / vnd.openxmlformats-officedocument.spreadsheetml.sheet ”的FileResult操作输出它。

当试图打开它时,Excel只是说“ 文件已损坏,无法打开 。”

当我打开用于发送输出的源代码生成的Excel文件时,它没有任何问题。 我也对两个副本的字节进行文件比较,文件是相同的。 我试图将损坏的文件发送给我自己,附件打开正常。

这导致我认为这是头文件或某种Excel / Windows安全配置的问题。

如果是后者,那么我需要一个不会让客户更改安全设置的解决方案。

编辑 - 找到设置:

我发现了什么设置导致了这一点 - “在Excel的信任中心/受保护的视图设置中启用源自Internet的文件受保护视图”

所以我想问题是 - 有没有办法让文件显示可信?

以下是响应标题:

  • 缓存控制:私人
  • 内容处置:附件;
  • 文件名=“报告 - 2012年3月19日星期一.xlsx”内容长度:20569
  • 内容类型:应用程序/ vnd.openxmlformats-officedocument.spreadsheetml.sheet
  • 使输出的操作方法:

    [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