dataTables导出到Excel按钮未显示

Nin*_*nju 22 jquery datatables

我在jquery dataTables中遇到了问题.iPad和移动设备中未显示"导出到Excel".它在桌面上显示.其他按钮如copy,csv和pdf在iPad和桌面上显示.这是我的代码:

$('#productDatatable').DataTable({
    dom: 'Bfrtip',
    buttons: [
        'copy', 'excel', 'pdf', 'csv'
    ]
} );
Run Code Online (Sandbox Code Playgroud)

小智 22

好的,所以我遇到了同样的问题(Excel按钮没有显示其他按钮时),看来你必须按照特定的顺序包含你的JavaScript文件,否则它将无法正常工作.

对我来说问题是我在jszip.js之前包含了buttons.html5.js,但你必须按顺序放置它们:

jszip.js
buttons.html5.js
Run Code Online (Sandbox Code Playgroud)

而且你还必须将这两个文件放在DataTablesDataTables.buttons文件之后

我发现有问题的是,如果你按错误的顺序排列它们,浏览器控制台中就不会显示任何JavaScript错误.

  • 文件顺序正确,但仍未显示。 (3认同)

Aug*_*ger 18

对我来说,我dom: 'Bfrtip',在表定义中缺少属性.

  • 使用 `dom: 'Bfrtip'` 是表格的格式。每个字母很难记住,但“f”代表过滤器,“t”代表表格,“B”代表按钮,“i”代表信息,“p”代表分页。因此,例如,“dom:'Bfpitipf'”将在顶部有按钮,然后是搜索框,然后是分页,然后是那个小信息片,然后是表格,然后是信息,然后是再次分页,然后是搜索框。`dom: 'it'` 不会显示按钮、过滤器或分页,仅显示信息行和表格。 (2认同)

jpa*_*reu 17

我知道这已经很老了,但是由于我使用的是Webpack 4和Babel,并且正在导入文件(ES6),所以我不得不将jsZip放在全局范围内:

import 'datatables.net-bs';
import jsZip from 'jszip';
import 'datatables.net-buttons-bs';
import 'datatables.net-buttons/js/buttons.colVis.min';
import 'datatables.net-buttons/js/dataTables.buttons.min';
import 'datatables.net-buttons/js/buttons.flash.min';
import 'datatables.net-buttons/js/buttons.html5.min';

// This line was the one missing
window.JSZip = jsZip;
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助干杯

  • 谢谢你!这是我遗漏的关键部分,在其他地方也没有看到它的答案。应该添加到数据表文档中 (2认同)
  • Browserify : `global.JSZip = require("jszip");` 我怀疑这是因为 xlsx 本质上是一个压缩的 xml 文件。太糟糕了,这会默默地失败,控制台中的错误消息会节省我一些时间 (2认同)
  • 谢谢你!使用 Laravel webpack 通过添加 `window.JSZip = require('jszip');` 来解决 (2认同)

Anj*_*lva 16

如果有人在显示DataTable导出按钮时仍有问题,请按以下顺序尝试加载所需的JS库.

<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.3.1/js/dataTables.buttons.min.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.3.1/js/buttons.html5.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

干杯!

  • 谢谢..这对我有用..可能是库版本问题。 (2认同)

dav*_*rad 14

你应该参考这些?html5版本

$('#productDatatable').DataTable({
  dom: 'Bfrtip',
  buttons: [
    'copyHtml5', 'excelHtml5', 'pdfHtml5', 'csvHtml5'
  ]
} );
Run Code Online (Sandbox Code Playgroud)

原因:如果使用copy,excel等等,你实际上在引用flash执行,这确实应被视为只是一个后备的风险.从iPad和大多数智能手机上删除/禁用Flash,这就是为什么Excel按钮不起作用的原因.如果仍有问题,请确保已包含这些库文件

jszip.min.js
pdfmake.min.js
vfs_fonts.js
buttons.html5.min.js
Run Code Online (Sandbox Code Playgroud)


小智 10

只需在数据表脚本之前添加这些引用.这个对我有用.

为了生成数据表,请使用此 -

<link rel="stylesheet" href="//cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css">
<script src="//cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

对于数据表按钮使用这些参考 -

<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.4.1/css/buttons.dataTables.min.css">
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.flash.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.html5.min.js"></script>
<script type="text/javascript" language="javascript" src="https://cdn.datatables.net/buttons/1.4.1/js/buttons.print.min.js"></script>
Run Code Online (Sandbox Code Playgroud)


Raj*_*eep 5

我有同样的问题,这不是因为jquery脚本.

转到浏览器设置(在我的情况下为chrome)>搜索Flash>

点击控制网站可以使用的信息>它将导航到内容设置(chrome:// settings/content?search = flash)>

单击Flash>

在允许栏中,使用添加按钮添加您的网站


Her*_*z3h 5

如果其他人遇到 webpack 4 中 pdf 按钮未显示的问题,则添加信息,您必须使用:

import pdfMake from 'pdfmake/build/pdfmake'
import pdfFonts from 'pdfmake/build/vfs_fonts'
import jsZip from 'jszip'
pdfMake.vfs = pdfFonts.pdfMake.vfs;
window.pdfMake = pdfMake;
window.JSZip = jsZip;
Run Code Online (Sandbox Code Playgroud)