web-dev-qa-db-fra.com

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

J'utilise le code Javascript suivant pour générer un Excel à la volée, qui convertit un tableau HTML en feuille de calcul.

Le fichier Excel ne s'ouvre pas dans Office 2010, affiche vide. La même feuille de calcul s'ouvre avec Openoffice. Quel peut être le problème? Est-ce quelque chose lié à encoding

function ExcelReport() {
              var tab_text = '<html xmlns:x="urn:schemas-Microsoft-com:office:Excel">';
              tab_text = tab_text + '<head><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet>';
              tab_text = tab_text + '<x:Name>Test Sheet</x:Name>';
              tab_text = tab_text + '<x:WorksheetOptions><x:Panes></x:Panes></x:WorksheetOptions></x:ExcelWorksheet>';
              tab_text = tab_text + '</x:ExcelWorksheets></x:ExcelWorkbook></xml></head><body>';      
              tab_text = tab_text + "<table>";
              var headingTable = $('#h_tbl').clone();
              tab_text = tab_text + headingTable.html();
              tab_text = tab_text + '</table>';
              $('.c_tbl').each(function( index ) {
                    tab_text = tab_text + "<table>";
                    tab_text = tab_text + "<tr><td></td></tr><tr><td></td></tr>";
                    tab_text = tab_text + '</table>';
                    tab_text = tab_text + "<table>";
                    var exportTable = $(this).clone();
                    tab_text = tab_text + exportTable.html();
                    tab_text = tab_text + '</table>';
              });
              tab_text = tab_text + '</body></html>';
              var fileName = name + '.xls';
              var blob = new Blob([tab_text], { type: "application/vnd.ms-Excel;charset=utf-8" })
              window.saveAs(blob, wo_var + ".xls");
            }

Quand j'ouvre Excel dans le bloc-notes, le code html ressemble à ceci

<html xmlns:x="urn:schemas-Microsoft-com:office:Excel"><head><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>
        <tbody><tr><td>abc:</td></tr></tbody></table></body></html>

 enter image description here

22
user580950

Nous avons eu le même problème trop de plaintes de nos clients. Nous l'avons tracé jusqu'au correctif KB3115262 d'Excel OFffice Security - https://support.Microsoft.com/en-us/kb/3115262 publié le 12 juillet 2016. 

Pour contourner le problème, nous avons demandé aux clients de modifier Excel pour autoriser les fichiers provenant d'Internet. 

Pour corriger: 1) Ouvrez Excel Allez dans Options de fichier

2) Cliquez sur Centre de gestion de la confidentialité -> Paramètres du Centre de gestion de la confidentialité.

3) Allez à la vue protégée. il y a 3 options qui montrent que tous ont été cliqués

Nous décochons la première option qui se lit - "Activer la vue protégée pour les fichiers provenant d'Internet"

Cela a résolu le problème. Peut-être pas la meilleure solution. Je ne sais pas pourquoi cette base de connaissances en particulier a cassé cela, mais je pense que le format de fichier n’est pas prévu et que ce paramètre est en conflit les uns avec les autres.

Sur un ordinateur que j'ai qui n'a pas installé cette base de connaissances, tout cela est vérifié et tout fonctionne correctement (pas de blancs, mais le format du fichier demandé est différent) et je pense que les émissions sont en mode protégé.

Ce qui nous a amenés à dire que ce n’est pas le contenu du fichier, c’est que nous avons remarqué que si nous réenregistrions le fichier dans le bloc-notes ou dans le bloc-notes ++ sans apporter de modifications, le fichier se comporte bien et Excel doit donc lire certaines propriétés du fichier plutôt que le contenu pour le bloquer. .

43
LR1234567

Vous enregistrez un fichier contenant du contenu HTML sous le nom *.xls. Excel peut ouvrir ceci mais affichera normalement un message d’avertissement:

Le fichier que vous essayez d'ouvrir, 'name.ext', est dans un format différent que spécifié par l'extension de fichier. Vérifiez que le fichier n'est pas est corrompu et provient d'une source de confiance avant d'ouvrir le fichier. Le faites vous veux ouvrir le fichier maintenant?

Si cet avertissement ne se produit pas et que le fichier ne s'ouvre pas, alors peut-être que

DWORD La valeur ExtensionHardening dans HKEY_CURRENT_USER\Software\Microsoft\Office\<version number>\Excel\Security est définie sur 2 dans Windows Registry 

Cela signifie "Vérifiez l'extension du nom de fichier et le type de fichier. S'ils ne correspondent pas, n'ouvrez pas le fichier."

Voir https://support.Microsoft.com/en-us/kb/948615

Peut-être que votre administrateur l'a défini via le paramètre de stratégie de groupe. Si vous êtes dans un réseau administré, demandez à votre administrateur.

Si vous êtes administrateur de votre choix, recherchez ce paramètre de registre et remplacez-le par 1, le paramètre par défaut.

3
Axel Richter

Au lieu de faire:

Nous décochons la première option qui lit - "Activer la vue protégée pour les fichiers provenant d'Internet" qui n'est pas sûr

Faire ceci:

Allez à Propriétés du fichier et cliquez sur Débloquer (si vous savez que le fichier est sécurisé).

Image: Allez dans les propriétés du fichier et cliquez sur Débloquer

3
Pradeep Palakurthi

J'ai eu un problème similaire, sage intranet. L'exportation de grille vers HTML Excel a soudainement cessé de fonctionner lorsque l'utilisateur cliquait sur l'ouverture. Solution de contournement rapide, option de menu déroulant Enregistrer et Ouvrir ou tout simplement enregistrer puis ouvrir.

Mon correctif était de changer la disposition du contenu de attaché à inline. Maintenant, les utilisateurs obtiennent l'ancienne page centrale au lieu de celle qui se trouve en bas et ouvrent parfaitement.

2
frank_00001

Solutions possibles au problème:

Solution 1:

1) Tapez Regedit dans le menu de démarrage

2) Accédez au registre en tant que,

Dans le registre: HKEY_CURRENT_USER\Software\Microsoft\Office \\ Excel\Security

où =

 15.0 for Office 2013
 16.0 for Office 2016
 12.0 for Office 2010

créez une valeur DWORD (32 bits) et nommez-la: ExtensionHardening . Les valeurs possibles sont les suivantes:

0: Do not check the file name extension and
   the file type, and bypass the function of the warning message.

1: Check the file name extension and the file type.
   If they do not match, display the warning message.

2: Check the file name extension and the file
   type. If they do not match, do not open the file.

Utilisez 1 comme valeur.

Solution 2:

Faites un clic droit sur Excel -> Propriétés -> Débloquer -> Ok.

UnblockExcel

Solution 3

Désinstaller les mises à jour:

Mise à jour Windows KB3115272 (Excel 2016/64 bit)

Mise à jour Windows KB3115262 (Excel 2013)

Mise à jour Windows KB3115130 (Excel 2010)

Pour plus d'informations sur le problème, veuillez consulter le lien ci-dessous . https://social.technet.Microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for- bureau-2016-pauses-fonctionnalité-ms16088? forum = officeitpro

1
Krishna

Problème similaire, mon code passe d'un GridView à un fichier XLS à l'aide de StringWriter, HTMLTextWriter et RenderControl.

Étant donné que notre code ASP.NET est exécuté sur un intranet de la société, nous avons désinstallé les mises à jour suivantes dans la société au lieu d’intégrer des centaines de PC et de modifier leurs paramètres.

Désinstallé:

  • Mise à jour Windows KB3115262 (Excel 2013) 
  • Mise à jour Windows KB3115130 (Excel 2010)
  • Mise à jour Windows KB3115272 (Excel 2016/64 bit)

Cela corrigeait notre problème et corrigeait également votre problème et celui des autres utilisateurs concernés par ces mises à jour.

1
Taylor Brown

Pour les plus paranoïaques de sécurité, j'ai vu une autre réponse sur le site SalesForce, qui devrait également fonctionner - https://success.salesforce.com/answers#!/feedtype=SINGLE_QUESTION_DETAIL&dc=All&criteria=BESTANSWERS&id=9063A000000ITIQQAM

Fondamentalement, marquer le site que vous téléchargez en tant que coffre-fort.

Je n'ai pas essayé moi-même

Fondamentalement, ouvrez le site Web sur lequel vous allez télécharger des fichiers Excel dans Internet Explorer

Allez à Paramètres Options Internet Sécurité Sites de confiance Sites Ajouter

Cela devrait ajouter le site en question comme étant autorisé et vous pouvez ensuite utiliser le navigateur de votre choix, par exemple. firefox/chrome etc.

1
LR1234567

Microsoft a corrigé Excel le 9 août pour restaurer la fonctionnalité d'origine. Faites défiler pour poster le 9 août dans ce fil pour plus d'infos: https://social.technet.Microsoft.com/Forums/en-US/d2d84793-9920-45e3-baef-5027a4ac1ae0/kb3170008-for-office-2016 -breaks-functional-ms16088? forum = officeitpro

La mise à jour d'Excel a résolu le problème pour moi.

0
Chad C