jsPDF Autotable如何为负值更改单元格颜色?

3
我正在使用jsPDF Autotable将HTML表格生成PDF。TD元素包含一个ID,该ID使用变量填充单元格。所有内容都可以正常工作,但是我想设置负值的文本颜色为红色。我找不到如何实现这一点的示例?
编辑:我通过使用钩子使表格的底部行在值为负时变为红色来解决了问题...
drawCell: function (cell, data) {
    if (summary_balance_weekly <0) {
        if (data.row.index === data.table.rows.length - 1) {
            doc.setTextColor(255,0,0);
        }
    }    
}
2个回答

4

对于最新版本的jspdf-autotable,createdCell函数已弃用,请使用didParseCell函数。以下是如果单元格中的数据为负数,则更改颜色的示例:

didParseCell: function (data) {
    if(data.section === 'body' && data.cell.raw < 0){
        data.cell.styles.textColor = "red";
    }
}

1
我认为上面提到的 data.cell.raw 可能需要再深入一层,即 data.cell.raw.outerText。我有一个非常类似的需求,即当单元格包含特定值“YES”时进行着色。所以对我有效的是像这样的代码:if(data.section === 'body' && data.cell.outerText === 'YES' ){ ... - 3vangarde

1

fillColor和textColor都接受RGB数组。因此,示例代码将如下所示:

createdCell: function(cell, opts) {
                if (opts.column.index >= 1) { // count startrs from 0
                    // cell.raw contains the cell data
                    cell.styles.fillColor = [216,78,75];     // random color
                    cell.styles.textColor = [58,121,152];
                  }
              }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接