问题描述 在使用 SpreadJS 时,我遇到了关于脏数据单元格检测的问题。 场景如下: - 单元格 A1 输入值为 1;
- 单元格 A2 输入值为 2;
- 单元格 A3 设置为公式 A1 + A2,自动计算得出结果。
此时,点击“保存”按钮,调用 sheet.getDirtyCells() 方法获取脏数据单元格。控制台输出显示有三个发生变化的单元格:A1、A2 和 A3,这与预期一致。 接着调用 sheet.clearPendingChanges() 方法,清除所有待处理的变更。 后续操作如下: - 在页面中将 A1 的值修改为 2,但不点击保存按钮;
- 随后再次将 A1 的值改回为 1;
- 此时调用 sheet.getDirtyCells() 获取脏数据单元格。
问题现象: 尽管 A1 的值最终恢复为初始值(即从 1 → 2 → 1),在最后一次获取脏数据时,A1 仍然被标记为脏数据单元格。 期望行为: 由于 A1 的值在整个过程中没有发生实际变化(相对于上一次调用 clearPendingChanges() 后的状态),我们希望它在最后一步中不被识别为脏数据单元格。 问题核心: SpreadJS 等表格组件是否具备自动判断单元格内容是否真正发生变化的能力?
如果不能,是否有推荐的方法或策略来实现“只有实际内容发生变化的单元格才被视为脏数据”的逻辑? |