我的 Excel 数据表中的按钮现在正在显示。我正在使用NPM导入所有脚本,所有其他按钮效果很好( PDF,复制,打印)。只有 Excel 不起作用。
检查我的导入:
import 'datatables.net-bs'
import 'datatables.net-buttons-bs'
import 'datatables.net-responsive-bs'
import 'datatables.net-buttons/js/buttons.colVis.js'
import 'datatables.net-buttons/js/buttons.flash.js'
import 'jszip'
import pdfMake from 'pdfmake/build/pdfmake'
import pdfFonts from 'pdfmake/build/vfs_fonts'
import 'datatables.net-buttons/js/buttons.html5.js'
import 'datatables.net-buttons/js/buttons.print.js'
pdfMake.vfs = pdfFonts.pdfMake.vfs
我的配置:
let datatableConfig = {
responsive: true,
"dom": '<"html5buttons"B>lTfgtip',
"buttons": [
{ extend: 'copy' },
{ extend: 'excel'},
{ extend: 'excelHtml5' },
{ extend: 'pdf' },
{ extend: 'print' }
]
};
$('#dataTable').DataTable(datatableConfig)
如果我将
https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.4/jszip.min.js
直接放在我的HTML中,它就可以了。如何使用import
无效? (是的,已经安装了jszip)
谢谢!
答案 0 :(得分:3)
我在require
语法中遇到了同样的问题,我必须这样做:
window.JSZip = require( "jszip" );
我不知道import
的语法,但可能就像
import window.JSZip from 'jszip';
或
JSZip from 'jszip';
或
import JSZip from 'jszip';
window.JSZip = JSZip;
答案 1 :(得分:0)
如果某人不想公开jszip
,现在可以在DataTables中将该库直接添加到Buttons:
// import section
import $ from 'jquery;
import jszip from 'jszip';
import pdfmake from 'pdfmake';
import 'datatables.net';
import 'datatables.net-buttons';
import 'datatables.net-buttons/js/buttons.html5';
// add pdfmake or jszip directly to DT Buttons
$.fn.dataTable.Buttons.jszip(jszip);
$.fn.dataTable.Buttons.pdfMake(pdfmake);