NPM Datatable Excel按钮未显示

时间:2017-10-19 12:29:56

标签: jquery node.js excel datatable datatables

我的 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)

谢谢!

2 个答案:

答案 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);

Source