【发布时间】:2019-10-16 04:39:54
【问题描述】:
在参考here 中,我有带有 excel 导出自定义的数据表,可以使用单元格颜色进行打印。当 paging: false, 时它工作正常。使用分页,带有单元格颜色的导出 excel 不完整。如何让它与分页一起工作?
【问题讨论】:
-
如果已解决,请更新...并发布您如何获得解决方案。
标签: javascript jquery arrays excel datatables
在参考here 中,我有带有 excel 导出自定义的数据表,可以使用单元格颜色进行打印。当 paging: false, 时它工作正常。使用分页,带有单元格颜色的导出 excel 不完整。如何让它与分页一起工作?
【问题讨论】:
标签: javascript jquery arrays excel datatables
使用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
【讨论】:
在构建 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;
}
});
【讨论】:
您必须使用手动渲染来导出 excel 和 pdf。
我觉得,自动渲染没用。
https://editor.datatables.net/examples/extensions/exportButtons
【讨论】: