Datatables.net - 自定义时导出到 Excel 显示错误

Posted

技术标签:

【中文标题】Datatables.net - 自定义时导出到 Excel 显示错误【英文标题】:Datatables.net - Export to Excel is showing error while customizing 【发布时间】:2021-10-08 13:31:34 【问题描述】:

我正在为我的 webpart 使用 SPFx、typescript 和 datatables.net,我想导出到 excel 并对数据进行一些自定义,例如左对齐。 导出工作正常,但是当我添加自定义代码时,它显示错误。 这是我的代码:

 window["JSZip"] = JSZip;
      $('#trackerDataTable').DataTable(
        dom: 'Bfrtip',
        buttons: [
          
            extend: 'excel',
            text: '<i></i>&nbsp;Export to Excel &nbsp;',
            filename: 'Timecards',
            extension: '.xlsx',
            exportOptions: 
              columns: ':visible'
            ,
            customize: function (xlsx) 
              debugger;
              var sheet = xlsx.xl.worksheets['sheet1.xml'];
              $('row c[r^="C"]', sheet).attr('s', '50');
            
          ,
        ]
);

在上面的代码中 xlsx.xl 显示如下错误:

如果你能在这里帮助我使它工作,那就太好了。 提前谢谢你。

【问题讨论】:

您在 &lt;head&gt;&lt;/head&gt; 中包含了 JSZip 扩展名,正确 是的@BeerusDev。我可以导出它,但我不能自定义它。 你能提供你的完整代码吗?或者至少一个测试用例:例如,这是 DataTables 网站上使用 Orthogonal data 的示例,这是一个 JS Bin 展示如何使用 Change the style of the spreadsheet 我为它创建了单独的函数,它开始工作了。感谢@BeerusDev 的帮助。 【参考方案1】:

我现在找到了解决方案。我为该函数创建了一个单独的函数。我在这里使用打字稿。

window["JSZip"] = JSZip;
      $('#trackerDataTable').DataTable(
        dom: 'Bfrtip',
        buttons: [
          
            extend: 'excel',
            className: 'btn-primary',
            text: '&nbsp; Export to Excel &nbsp;',
            filename: 'Timecards',
            extension: '.xlsx',
            exportOptions: 
              columns: ':visible'
            ,
            customize: function (xlsx) 
              debugger;
              ExportTimecardsWebPart.exportExcel(xlsx); // create separate function
            
            // customize: function(xlsx) 
            //   debugger;
            //   var sheet = xlsx.xl.worksheets['sheet1.xml'];
            //   $('row c[r^="C"]', sheet).attr('s', '50');
            // 
          ,
        ],
);
 
 public static exportExcel(xlsx: any): void 
    debugger;
    var sheet = xlsx.xl.worksheets['sheet1.xml'];
    $('row c[r^="C"]', sheet).attr('s', '50');
  

【讨论】:

以上是关于Datatables.net - 自定义时导出到 Excel 显示错误的主要内容,如果未能解决你的问题,请参考以下文章

DataTables.net 如何仅使用自定义代码订购

使用jQuery DataTable Buttons插件不显示导出按钮

使用 jQuery DataTable Buttons Plugin 不显示导出按钮

如何将我的自定义 jquery 表行过滤与 datatables.net 集成?

使用 webpack 时不显示 Datatables.net Excel 导出按钮

jquery.datatables使用