1. ホーム
  2. html

[解決済み] Response.ContentType application/vnd.ms-excel xls が動作しなくなった。

2022-02-16 14:27:19

質問

この問題についてかなり深く検索してみたのですが、うまくいきません。 ここ数日、私がサポートしている多くのレガシー(読み:クラシックASP)システムで、HTMLからXLSへの出力が機能しなくなったようです。 私は、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ファイルをテキストエディタ(例えばメモ帳)で開き、File->Save Asだけで問題なく開くことができます。

解決方法は?

この問題は、2016年7月12日に公開されたMicrosoft Security Update KB3115262 for Excelに関連するものです。セキュリティ更新プログラムの情報は、Microsoft Security Bulletin MS16-088 - Critical に記載されています。

3つの回避策を見つけました(私の好きな順です)。

  • 開く]をクリックする代わりに、ファイルを保存してから開きます。
  • Excel トラストセンター > トラストセンターの設定 > 保護されたビューで、上2つのオプションのチェックを外してください。これは潜在的に安全ではありません。
  • セキュリティ更新プログラムをアンインストールしてください。

以下に、この問題に関するいくつかのリンクを掲載しますので、ご覧ください。 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で開けない