【问题标题】:Datatable extend excel option doesn't work with pagination数据表扩展 excel 选项不适用于分页
【发布时间】:2019-10-16 04:39:54
【问题描述】:

在参考here 中,我有带有 excel 导出自定义的数据表,可以使用单元格颜色进行打印。当 paging: false, 时它工作正常。使用分页,带有单元格颜色的导出 excel 不完整。如何让它与分页一起工作?

【问题讨论】:

  • 如果已解决,请更新...并发布您如何获得解决方案。

标签: javascript jquery arrays excel datatables


【解决方案1】:

使用var colour = $(table.cell(':eq('+count+')',2).node()).css('background-color');代替

解决了这个问题
var colour = $('tbody tr:eq('+parseInt(count)+') td:eq(2)').css('background-color');

参考here

【讨论】:

    【解决方案2】:

    在构建 excel 时,我注意到您曾经通过检查 css 属性颜色来为 excel 文件中的单元格着色,如果它的颜色是红色,您也会将其着色为 excel 红色。

    它适用于您的 paging:false,因为所有需要颜色的单元格都已着色,因为所有单元格都显示在一个页面中,而如果您的 paging:true,excel中带颜色的单元格只是那些已经显示在首页并且已经填充颜色的单元格,而那些需要颜色的单元格没有显示或在其他页码中没有颜色,在excel中,因为它没有显示在前面,也没有上色。

    所以我的解决方案是在创建 excel 的自定义函数中具有与 rowCallback 相同的条件。请看下面:

    $('row c[r^="C"]', sheet).each( function (data, info) {
              console.log(info.textContent); 
              if (skippedHeader) {
    
    
    
                var txt = info.textContent; 
                if (txt === 'London') {
                  $(this).attr( 's', '35' );
                }
                else if (txt === 'New York') {
                  $(this).attr( 's', '40' );
                }
    
                count++;
              }
              else {
                skippedHeader = true;
              }
            });
    

    您也可以查看链接:http://live.datatables.net/jijumeji/105/edit

    【讨论】:

    • 即使在您发布此答案之前,我也尝试过这种方法。当分页为真时,它仍然不起作用。你可以去掉 paging: false 这一行,看看。
    • 我已经编辑了自定义功能,请看你端
    【解决方案3】:

    您必须使用手动渲染来导出 excel 和 pdf。

    我觉得,自动渲染没用。

    https://editor.datatables.net/examples/extensions/exportButtons

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2019-10-11
      • 1970-01-01
      • 2019-12-29
      • 1970-01-01
      相关资源
      最近更新 更多