web-dev-qa-db-fra.com

Response.ContentType application/vnd.ms-Excel xls a cessé de fonctionner

J'ai effectué des recherches approfondies sur cette question sans succès. Il semble que ces derniers jours, la sortie HTML vers XLS ait cessé de fonctionner sur de nombreux systèmes hérités (lire: ASP classique) que je prend en charge. J'ai pu reproduire ce document sur plusieurs serveurs, plusieurs codes sources indépendants d'Office 2010 à Office 2016. J'ai examiné toutes les idées auxquelles je peux penser sans succès, alors je suis curieux de savoir s'il y a quelque chose que je pourrais négliger. Je commence à penser que c'est peut-être une mauvaise mise à jour d'Office qui en est la cause.

Échantillon de ce qui fonctionne et fonctionne depuis de nombreuses années:

<%

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>

Ce qui est curieux, c’est que le fichier XLS est effectivement créé mais qu’il est ouvert, Excel s’ouvre mais aucun fichier n’est présent.

Encore plus curieux, c’est que lorsque vous ouvrez le fichier XLS avec un éditeur de texte (le bloc-notes par exemple) et que Fichier -> Enregistrer sous s’ouvre sans problème.

11
Chris Boozer

Le problème est lié à la mise à jour de sécurité Microsoft KB3115262 pour Excel publiée le 12 juillet 2016. Vous trouverez des informations sur la mise à jour de sécurité dans le Bulletin de sécurité Microsoft MS16-088 - Critique. 

J'ai trouvé trois solutions de contournement (dans l'ordre de préférence):

  • Au lieu de cliquer sur Ouvrir, enregistrez le fichier puis ouvrez-le.
  • Dans Excel Trust Center> Paramètres du Centre de gestion de la confidentialité> Vue protégée, désélectionnez les deux premières options. Ceci est potentiellement dangereux.
  • Désinstallez la mise à jour de sécurité.

Vous trouverez ci-dessous plusieurs liens concernant la question pour une lecture plus approfondie. https://social.technet.Microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for-office-2016-breaks-functionality-msunction1-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

Exporter un tableau HTML vers Excel - Ne s'ouvre pas dans Office 2010

16
xelvis42

Pour les utilisateurs de Windows 10, ajoutez l'URL du site de téléchargement Excel à votre liste de sites de confiance dans Windows 10 Options Internet> Sécurité> Sites de confiance> Sites, puis téléchargez et ouvrez le classeur Excel via votre navigateur MS Edge.

0
CAK2

Vous pouvez également accéder aux propriétés du fichier et cliquer sur Débloquer.

Je pense qu'il est plus sûr que de changer le Excel Trust Center

0
Tincho