Response.ContentType application/vnd.ms-excel xls停止工作

Chr*_*zer 11 html excel xls

我在这个问题上做了一些非常深入的搜索而没有运气.似乎在过去的几天里,从HTML输出到XLS已经停止了我支持的许多遗留(读取:经典ASP)系统.我已经能够在多个服务器上重现这个,从Office 2010到Office 2016的多个独立源代码.我已经看到了我能想到的一切都没有成功,所以我很想知道是否有一些我可能会忽略的东西.我开始认为这可能是一个糟糕的Office更新,这是罪魁祸首.

什么有效并且已经工作多年的样本:

<%

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment;filename=TestExcel.xls"

%>

<html>
    <body>
        <table>
            <thead>
                <tr>
                    <th>column 1 header</th>
                    <th>column 2 header</th>
                </tr>
            </thead>

            <tbody>
                <tr>
                    <td>column 1 value</td>
                    <td>column 2 value</td>
                </tr>
            </tbody>

            <tfoot>
                <tr>
                    <td>Footer 1</td>
                    <td>Footer 2</td>

                </tr>

            </tfoot>
        </table>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,XLS文件实际上是创建的,但是当它打开时,Excel会打开但不存在文件.

更令人好奇的是,当你用一些文本编辑器(例如记事本)打开XLS文件时,只需文件 - >另存为它打开时没有问题.

小智 16

此问题与2016年7月12日发布的Microsoft安全更新KB3115262 for Excel有关.安全更新信息可在Microsoft安全公告MS16-088中找到 - 严重.

我找到了三个解决方法(按我的偏好顺序):

  • 而不是单击打开,保存文件,然后打开它
  • 在Excel信任中心>信任中心设置>受保护的视图中,取消选中前两个选项.这可能是不安全的.
  • 卸载安全更新.

以下是有关该问题的若干链接供进一步细读. https://social.technet.microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for-office-2016-breaks-functionality-ms16088?forum=officeitpro

https://technet.microsoft.com/library/security/MS16-088

https://salesforce.stackexchange.com/questions/131404/end-user-cannot-open-a-xls-report-exported-from-salesforce

将HTML表导出到Excel-不在Office 2010中打开

  • MS补丁修复此问题:https://support.microsoft.com/en-us/kb/3181507 (3认同)