Winny 发表于 2022-8-22 18:35:04

工作表实现交替背景色的两种方案

背景:
用户在SpreadJS中使用表格(Table)时,可以选择套用表格样式,实现背景色交替出现的效果,如下所示:

但是存在一些业务情况,希望这种交替样式能够出现在整个工作表(Sheet)当中。这时。我们可以选择将整个工作表变成一个表格(Table)。但不少客户工作表中会存在其它内容,无法将整个工作表变成一个表格(Table)。此时,我们可以选择以下两种方案来实现交替北京色的需求。
1. 使用条件格式
使用条件格式去判断行索引的奇偶性,满足条件时,添加另外一种样式,其余行使用默认样式,核心代码如下:
let sheet = spread.getSheet(0)
let style1= new GC.Spread.Sheets.Style()
style1.backColor = '#e5efee'
let ranges =
// 方法1: 使用条件格式,删除或新增行时,样式随之变化,会对性能有一定影响。
sheet.conditionalFormats.addFormulaRule('=ISEVEN(ROW(A1))',style1,ranges)2. 遍历行索引,设置行背景。
sheet = spread.getSheet(1)
// 方法2:根据行索引去添加背景色,这种在新增行时,需要动态去调整样式,新增行列会有影响
function changeRowColor(){
    for(let i=0; i<sheet.getRowCount();i++){
      if(i % 2 != 0){
            sheet.getCell(i,-1).setStyle(style1)
      }
    }
}

changeRowColor()两种方式的优缺点都已经写在代码中,详细示例可以参考demo:工作表中添加交替背景色
页: [1]
查看完整版本: 工作表实现交替背景色的两种方案