找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.Xu SpreadJS 开发认证

超级版主

44

主题

7641

帖子

9949

积分

超级版主

Rank: 8Rank: 8

积分
9949

SpreadJS 认证SpreadJS 高级认证

Joestar.Xu SpreadJS 开发认证
超级版主   /  发表于:2024-6-3 12:30  /   查看:96  /  回复:0
本帖最后由 Joestar.Xu 于 2024-6-3 14:04 编辑

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


image.png967098693.png

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

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

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

  9.   let spread = designer.getWorkbook();

  10.   let sheet = spread.getActiveSheet();

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

  14.     sheet.cellStates.add(
  15.       new GC.Spread.Sheets.Range(
  16.         0,
  17.         0,
  18.         sheet.getRowCount(),
  19.         sheet.getColumnCount()
  20.       ),
  21.       GC.Spread.Sheets.CellStatesType.dirty,
  22.       style
  23.     );
  24.   });

  25.   document.querySelector("#button2").addEventListener("click", function () {
  26.     sheet.cellStates.clear(
  27.       new GC.Spread.Sheets.Range(
  28.         0,
  29.         0,
  30.         sheet.getRowCount(),
  31.         sheet.getColumnCount()
  32.       ),
  33.       GC.Spread.Sheets.SheetArea.viewport
  34.     );
  35.     sheet.repaint();
  36.   });
  37. };
复制代码

以上代码中提供了两个按钮,用于控制显示和隐藏高亮效果,另外需要注意的是,在取消后需要使用repaint接口重绘,否则不会立刻生效。


除了Dirty以外,如果想要实现其他的一些效果,比如选中、编辑等也都可以通过上面代码的方式来实现。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部