请选择 进入手机版 | 继续访问电脑版

阿仁

初级会员

38

主题

173

帖子

401

积分

初级会员

积分
401
阿仁
初级会员   /  发表于:2025-12-9 09:16  /   查看:239  /  回复:13
1金币
我的原始需求是:用户手动编辑的单元格需要记录痕迹,当时给我提供了脏列状态的方案,我近期发现脏列状态的生命周期只是文件打开保存这个过程,而我的需求是需要保存用户编辑的这个痕迹,请问可以怎么做呢?

最佳答案

查看完整内容

其实关注的是被修改值的单元格,而且是手动通过UI修改。 看下这个方案:对sheet绑定ValueChanged事件,在通过UI修改单元格值会触发这个事件,在这个事件处理函数中记录被修改的单元格行列索引信息,等到导出时将这些信息设置为Worksheet的tag。 这样可以避免以下问题: 1. 如果采取设置Style的方式来标记,那么可能会与用户手动设置在单元格上的Style混淆。 2. 如果您的业务场景里不需要用户对Worksheet设置tag,那么这 ...

13 个回复

最佳答案
最佳答案
Wilson.Zhang
超级版主   /  发表于:2025-12-9 09:16:21
来自 10#
阿仁 发表于 2025-12-11 15:03
甲方不希望项目上的人动价格,动了之后要标记提示方便他们审核,如果标记可以修改的话就没有意义了。

其实关注的是被修改值的单元格,而且是手动通过UI修改。

看下这个方案:对sheet绑定ValueChanged事件,在通过UI修改单元格值会触发这个事件,在这个事件处理函数中记录被修改的单元格行列索引信息,等到导出时将这些信息设置为Worksheet的tag。

这样可以避免以下问题:
1. 如果采取设置Style的方式来标记,那么可能会与用户手动设置在单元格上的Style混淆。
2. 如果您的业务场景里不需要用户对Worksheet设置tag,那么这一点不冲突了。

如果您的业务场景里不需要对单元格设置tag的话,可以在ValueChanged事件中对单元格设置tag。不过这样的话就需要在导入文件后遍历所有单元格通过Worksheet:getTag()判断是否存在特殊标记的tag了。

另外需要注意的是,如果被修改值的单元格很多,对Worksheet设置tag可能会比较笨重,您可以实际测试了解下。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-12-9 16:24:24
2#
您好!请问下“需要保存用户编辑的这个痕迹”指的是怎样的“痕迹”?在导入后需要了解上一次这个文件中被修改的单元格及其新旧数据吗?
回复 使用道具 举报
阿仁
初级会员   /  发表于:2025-12-9 16:33:09
3#
Wilson.Zhang 发表于 2025-12-9 16:24
您好!请问下“需要保存用户编辑的这个痕迹”指的是怎样的“痕迹”?在导入后需要了解上一次这个文件中被修 ...

如果被修改了,标记一下,下次打开能快速定位到相应单元格就行,不需要源数据。
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-12-9 17:29:00
4#
阿仁 发表于 2025-12-9 16:33
如果被修改了,标记一下,下次打开能快速定位到相应单元格就行,不需要源数据。

那如果修改了多个单元格,也要能标记出这些所有单元格吗?

如果仅是需要标记,可以在导出前通过Worksheet:getDirtyCells()获取其中的脏单元格,或者单独对这些脏单元格设置tag标记,也可以设置单元格样式标识,或者像AI技术顾问提供的方案,将这些脏单元格的信息整合起来设置为Worksheet的tag。
回复 使用道具 举报
阿仁
初级会员   /  发表于:2025-12-10 08:46:08
5#
Wilson.Zhang 发表于 2025-12-9 17:29
那如果修改了多个单元格,也要能标记出这些所有单元格吗?

如果仅是需要标记,可以在导出前通过Worksh ...

单元格样式是不是可以被手动修改吗?tag是不是和单元格样式一样?
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-12-10 11:52:46
6#
阿仁 发表于 2025-12-10 08:46
单元格样式是不是可以被手动修改吗?tag是不是和单元格样式一样?

单元格样式和tag都可以被手动修改。

单元格样式是直接体现在显示层的,不需要额外操作直接能看到。tag是设置在单元格或sheet上的内容,由于单元格已经有数据和显示这些显示内容了,tag的内容无法直接显示在页面上,通过右键菜单里的标签可以查看和编辑。
回复 使用道具 举报
阿仁
初级会员   /  发表于:2025-12-11 10:09:53
7#
Wilson.Zhang 发表于 2025-12-10 11:52
单元格样式和tag都可以被手动修改。

单元格样式是直接体现在显示层的,不需要额外操作直接能看到。tag ...

有没有不能手动修改的标识
回复 使用道具 举报
Wilson.Zhang
超级版主   /  发表于:2025-12-11 14:47:59
8#
阿仁 发表于 2025-12-11 10:09
有没有不能手动修改的标识

API支持的内容设置基本上都有相对应的UI设置方式,您在这里的顾虑是什么呢?
回复 使用道具 举报
阿仁
初级会员   /  发表于:2025-12-11 15:03:40
9#
Wilson.Zhang 发表于 2025-12-11 14:47
API支持的内容设置基本上都有相对应的UI设置方式,您在这里的顾虑是什么呢?

甲方不希望项目上的人动价格,动了之后要标记提示方便他们审核,如果标记可以修改的话就没有意义了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部