JQuery DataTable导出Excel无法将内置样式应用于空单元格

时间:2018-04-30 17:49:15

标签: jquery excel datatables

我试图通过使用来自jquery datatable的按钮扩展名的attr('s','20')来将样式应用于excel。 https://datatables.net/reference/button/excelHtml5 下面的代码是我如何将样式应用于连续的第3个孩子:

$('#DataTable').DataTable({
    dom: 'Bfrtip',
    buttons: [
        {
            extend: 'excelHtml5',
            customize: function (xlsx) {
                var sheet = xlsx.xl.worksheets['sheet1.xml'];
                $('row[r!=1]', sheet).each(function () {
                    $(this).children().eq(2).attr('s', '20');//apply style to 3rd child of the row.
                });
            }
        }]...............

问题是:当单元格为空时,不会应用该样式。

当第3个单元格为空字符串或数据表为null时,该样式将不适用于excel文件。我调试了代码并找出$(this).children()。当单元格为空字符串时,eq(2)不存在。如果第三个单元格中包含一些文本,则将应用该样式。

有谁知道如何解决这个问题?或者有没有办法将样式应用于整行。

感谢。

2 个答案:

答案 0 :(得分:0)

要为除标题之外的每一行第三个单元格设置样式,您需要此选择器:

$('row[r!=1] c:nth-child(3)', sheet).attr('s', '20');

即使单元格为空,样式也会适用。检查我创建的this example

答案 1 :(得分:0)

使用“createEmptyCells”:true,

实施例         {extend:'excelHtml5',                                                                 文字:'导出到Excel',                                                                 “createEmptyCells”:是的,                                                                 exportOptions:                                                                     {title:null,                                                                         正交:'出口'                                                                      }                                                                 },