Joestar.Xu 发表于 2024-6-3 12:30:28

如何高亮显示编辑过的单元格

本帖最后由 Joestar.Xu 于 2024-6-3 14:04 编辑

很多同学在开发中会需要高亮编辑过的单元格,对于这个需求,可以直接使用单元格状态(https://demo.grapecity.com.cn/sp ... introduction/purejs)来实现:




除了Dirty,还有很多其他的方式可以使用,这里主要介绍编辑过的单元格,即Dirty。

window.onload = function () {
let designerConfig = JSON.parse(
    JSON.stringify(GC.Spread.Sheets.Designer.DefaultConfig)
);

let designer = new GC.Spread.Sheets.Designer.Designer(
    "gc-designer-container",
    designerConfig
);

let spread = designer.getWorkbook();

let sheet = spread.getActiveSheet();

document.querySelector("#button1").addEventListener("click", function () {
    var style = new GC.Spread.Sheets.Style();
    style.backColor = "yellow";

    sheet.cellStates.add(
      new GC.Spread.Sheets.Range(
      0,
      0,
      sheet.getRowCount(),
      sheet.getColumnCount()
      ),
      GC.Spread.Sheets.CellStatesType.dirty,
      style
    );
});

document.querySelector("#button2").addEventListener("click", function () {
    sheet.cellStates.clear(
      new GC.Spread.Sheets.Range(
      0,
      0,
      sheet.getRowCount(),
      sheet.getColumnCount()
      ),
      GC.Spread.Sheets.SheetArea.viewport
    );
    sheet.repaint();
});
};
以上代码中提供了两个按钮,用于控制显示和隐藏高亮效果,另外需要注意的是,在取消后需要使用repaint接口重绘,否则不会立刻生效。


除了Dirty以外,如果想要实现其他的一些效果,比如选中、编辑等也都可以通过上面代码的方式来实现。
页: [1]
查看完整版本: 如何高亮显示编辑过的单元格