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

时间:2016-07-19 18:40:36

标签: 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>

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

更令人好奇的是,当您使用某个文本编辑器(例如记事本)打开XLS文件时,只需使用文件 - &gt;保存,因为它打开时没有问题。

3 个答案:

答案 0 :(得分:16)

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

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

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

以下是有关该问题的若干链接以供进一步细读。 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

Export HTML Table to Excel- Doesn't Open in Office 2010

答案 1 :(得分:0)

您也可以转到该文件的属性,然后点击取消阻止。

我认为比更改Excel信任中心更安全

答案 2 :(得分:0)

对于Windows 10用户,将Excel下载站点URL添加到Windows 10 Internet选项中的可信站点列表&gt;安全&gt;可信站点&gt;然后,站点通过MS Edge浏览器下载并打开Excel工作簿。