请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

吴钦飞

注册会员

4

主题

8

帖子

32

积分

注册会员

积分
32
  • 392

    金币

  • 4

    主题

  • 8

    帖子

最新发帖
吴钦飞
注册会员   /  发表于:2025-3-15 18:17  /   查看:187  /  回复:5
60金币
本帖最后由 吴钦飞 于 2025-3-17 19:21 编辑

我知道 通过“脏数据”可以获取单元格的历史 值(value)数据 ,如下:

  1. sheet.getDirtyCells(row: number,  col: number,  rowCount: number,  colCount: number): GC.Spread.Sheets.IDirtyCellInfo[];
复制代码


但 如何获取单元格的变更之前 显示的值?

比如,编辑 A1 单元格,将其从 "10%" 修改为 "20%",
脏数据,记录的新旧值分别为 0.1 和 0.2。
我想获取 A1 之前显示的值 "10%" ,该如何做?




最佳答案

查看完整内容

您好!IDirectCellInfo记录的oldValue和newValue均为单元格实际数据,而非显示数据。虽然IDirtyCell没有记录格式化后的显示数据,但是可知脏单元格行列索引和原有值,根据行列索引可以通过Worksheet:getFormatter()获取其格式,就可以进一步应用该格式对单元格原有值进行格式化。 然而,格式化的宿主是单元格,单元格又隶属于工作表Worksheet。如果可以新建一个不依附于Workbook的Worksheet示例,那就可以在该工作表中对某单元 ...

5 个回复

倒序浏览
最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2025-3-15 18:17:03
来自 4#
您好!IDirectCellInfo记录的oldValue和newValue均为单元格实际数据,而非显示数据。虽然IDirtyCell没有记录格式化后的显示数据,但是可知脏单元格行列索引和原有值,根据行列索引可以通过Worksheet:getFormatter()获取其格式,就可以进一步应用该格式对单元格原有值进行格式化。

然而,格式化的宿主是单元格,单元格又隶属于工作表Worksheet。如果可以新建一个不依附于Workbook的Worksheet示例,那就可以在该工作表中对某单元格设置与脏单元格相同的格式,且对其填充脏单元格的oldValue,之后便可以通过Worksheet:getText()获取脏单元格旧数据对应的显示值。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2025-3-17 17:34:40
2#
如果只是获取paint之后的显示值,可以通过getText()方法获取。如果不满足您的需求,可以再描述下您的问题。
回复 使用道具 举报
吴钦飞
注册会员   /  发表于:2025-3-17 19:17:29
3#
Ellia.Duan 发表于 2025-3-17 17:34
如果只是获取paint之后的显示值,可以通过getText()方法获取。如果不满足您的需求,可以再描述下您的问题。

某个单元格变更过后,我想获取变更之前 该单元格显示的值(text)
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2025-3-21 09:18:34
5#
您好,上述思路是否可以解决您的问题,整体思路就是将原来的text保存在另一个地方:临时sheet ,标签,批注,隐藏单元格等地方,然后获取值。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-3-28 11:52:26
6#
您好!由于您较长时间未回复,请教下您的问题解决的怎么样了?我们在4楼和5楼给您介绍的方案是否能帮助您满足需求?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部