[Javascript] DataTables Exporter vers Excel en téléchargeant un fichier zip


Answers

J'ai aussi eu le même problème .... mais je pense que c'est lié au navigateur.

  • Dans Mozilla Firefox lorsque vous cliquez sur Exportation Excel, il vous demande si vous souhaitez ouvrir ou enregistrer le fichier. Lorsque vous cliquez sur Ouvrir, il enregistre temporairement les fichiers au format zip et ouvre le fichier zip (qui est en fait le fichier .xlsx).
  • Si vous changez l'extension de zip en xlsx alors vous êtes prêt à partir.
  • Où comme lorsque vous cliquez sur Enregistrer, il enregistrera le fichier .xlsx uniquement.
  • Et dans Chrome, il enregistre directement le fichier au format .xlsx uniquement.
Question

J'exécute des boutons d'exportation sur jQuery DataTables en utilisant l'extension Boutons. J'ai tous les boutons qui fonctionnent sauf pour l'exportation vers le bouton Excel.

Tous les scripts ci-dessous sont inclus:

<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/datatables/media/js/jquery.dataTables.js"></script>
<script src="bower_components/datatables/media/js/dataTables.bootstrap.js"></script>
<script src="bower_components/datatables-buttons/js/dataTables.buttons.js"></script>
<script src="bower_components/datatables-buttons/js/buttons.html5.js"></script>
<script src="bower_components/datatables-buttons/js/buttons.print.js"></script>
<script src="bower_components/datatables-buttons/js/buttons.bootstrap.js"></script>
<script src="bower_components/jszip/dist/jszip.js"></script>
<script src="bower_components/pdfmake/build/pdfmake.js"></script>
<script src="bower_components/pdfmake/build/vfs_fonts.js"></script>

Ensuite, je crée les boutons et les ajoute à un div:

// Create and render buttons
new $.fn.dataTable.Buttons( table, {
    buttons: ['copyHtml5', 'csvHtml5', 'excelHtml5', 'pdfHtml5', 'print']
})
table.buttons().container().appendTo($('.header-right'), self);

En cliquant sur le bouton Excel, mon application télécharge un fichier xlsx.zip. Pourquoi ne télécharge-t-il pas un fichier ".xlsx"?

J'ai également essayé d'étendre le bouton en ajoutant manuellement l'extension, mais tout ce que j'ai mis à la propriété d'extension se termine par "extension-name.zip".

new $.fn.dataTable.Buttons( table, {
    buttons: [
        {
            extend: 'excelHtml5',
            extension: '.xlsx'
        }
    ]
 })