使用jsPDF设置表格首行填充色时表头被同步着色如何解决
问题原因
你当前的判断逻辑没有区分表头行和表体行,jsPDF-autoTable 中表头行的row.index同样从0开始计数,data.row.index === 0会同时命中表头的第一行和表体的第一行,这就是表头被同步着色的核心原因。
同时autoTable的单元格渲染钩子样式优先级高于全局headStyles配置,所以你后续新增的表头样式配置被钩子中设置的填充色覆盖,无法生效。
解决方法
在原有判断条件中新增行所属区块的校验,仅针对表体的第一行设置填充色即可:
if (new Date(tableaudate[0]).getDay() === 0) { // 仅匹配表体的第一行,排除表头行 if (data.row.section === 'body' && data.row.index === 0) { data.cell.styles.fillColor = [211, 211, 211]; console.log(data); } }
兼容说明
如果你使用的是v3.x之前的旧版本autoTable,可替换为data.row.type === 'body'判断行类型即可。
内容的提问来源于stack exchange,提问作者ahmed
相关产品推荐
相关产品推荐

