【问题标题】:DataTables Export to Excel downloading a zip file数据表导出到 Excel 下载 zip 文件
【发布时间】:2015-10-08 23:22:53
【问题描述】:

我正在使用 Buttons 扩展在 jQuery DataTables 上实现导出按钮。除了导出到 Excel 按钮之外,我的所有按钮都可以使用。

包括以下所有脚本:

<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>

然后我创建按钮并将它们附加到 div:

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

单击 Excel 按钮时,我的应用程序会下载一个 xlsx.zip 文件。为什么不下载“.xlsx”文件?

我也尝试通过手动添加扩展来扩展按钮,但我设置到扩展属性的任何内容都以“extension-name.zip”结尾。

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

【问题讨论】:

  • 你的问题是什么?
  • 最后添加的问题。
  • 最终结果不是有一个.zip 扩展吗?在.zip 文件中将是.xlsx 文件。
  • 尝试改变JS文件的顺序,让buttons.html5.js最后加载。
  • @j.fong 有什么适合你的吗?即使我面临类似的问题。 Excel 按钮下载一个 zip。

标签: javascript jquery datatables


【解决方案1】:

设置 Title 属性对我有用。

以下以 .xlsx 文件扩展名导出

 buttons: [{
            extend: 'excelHtml5',
            title: 'Location Report' 
            }
          ],.....etc

未设置标题时,以 .zip 文件扩展名导出的文件

 buttons: [{
            extend: 'excelHtml5',
            title: '' 
            }
          ],.....etc

【讨论】:

    【解决方案2】:

    我也有同样的问题....但我认为它与浏览器有关。

    • 在 Mozilla Firefox 中,当您单击 Excel 导出时,它会询问您是要打开还是保存文件。当您点击打开时,它会将文件临时保存为 zip 格式并打开 zip 文件(实际上是 .xlsx 文件)。
    • 如果您将扩展名从 zip 更改为 xlsx,那么您就可以开始了。
    • 当您单击保存时,它将仅保存 .xlsx 文件。
    • 在 Chrome 中,它直接将文件保存为 .xlsx。

    【讨论】:

      【解决方案3】:

      我也有同样的问题。与 chrome 完美配合,但不能与 Mozilla Firefox 配合使用.....

      终于经过这么多的努力和研究。我找到了解决办法。

      请在数据表 js 文件之后的脚本中包含以下文件。 //cdn.datatables.net/buttons/1.1.2/js/buttons.html5.min.js

      它对我有用。

      【讨论】:

      • 我已经为此苦苦挣扎了好几个小时,它完美地解决了我的问题。给这个人一枚勋章。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-08
      • 2015-09-27
      • 2022-01-24
      • 1970-01-01
      • 2016-01-19
      • 1970-01-01
      相关资源
      最近更新 更多