【问题标题】:JQuery DataTable Export Excel cannot apply Built in style to empty cellJQuery DataTable Export Excel 无法将内置样式应用于空单元格
【发布时间】:2018-04-30 17:49:15
【问题描述】:

我正在尝试通过使用来自 jquery 数据表的按钮扩展的 attr('s', '20') 将样式应用于 excel。 https://datatables.net/reference/button/excelHtml5 下面的代码是我如何将样式应用于一行的第三个孩子:

$('#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.
                });
            }
        }]...............

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

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

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

谢谢。

【问题讨论】:

  • 您是否尝试过像这样直接设置行的样式:$('row[r!=1]', sheet).attr( 's', '20' )
  • 我刚试过。它没有用。基于datatables.net/reference/button/excelHtml5,内置样式仅适用于单元格。

标签: jquery excel datatables


【解决方案1】:

使用“createEmptyCells”:是的,

示例 { 扩展:'excelHtml5', text: '导出到 Excel', “createEmptyCells”:是的, 出口选项: {标题:空, 正交:'出口' } },

【讨论】:

  • 我已将 createEmptyCells 设置为 true,但是当尝试在导出的 Excel 文件中的表格之后的单元格中写入值时,没有任何反应。由于某种原因,表格之后的单元格似乎仍然为空。这是我尝试插入测试值的代码:$('c[r=A50] t', sheet).text('TEST');
【解决方案2】:

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

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

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

【讨论】:

  • 第三个单元格没有被创建,因为其中没有文本,所以 c:nth-child(3) 将为空,然后样式不会应用。
  • @Candice 你可以在整行中应用样式。
  • 感谢您的回复。从未创建单元格,因此样式不会适用,Shibani 的解决方案确实有效。
猜你喜欢
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 2013-09-08
  • 1970-01-01
  • 2010-11-01
  • 1970-01-01
相关资源
最近更新 更多