我试图通过使用来自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)不存在。如果第三个单元格中包含一些文本,则将应用该样式。
有谁知道如何解决这个问题?或者有没有办法将样式应用于整行。
感谢。
答案 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, 正交:'出口' } },