找回密码
 立即注册

QQ登录

只需一步,快速开始

AirCat
金牌服务用户   /  发表于:2023-10-30 16:35  /   查看:2579  /  回复:10
程序中调用spread.save方法保存当前workbook文件为sjs类型文件,在save方法中如何判断当前workbook文件是否发生过改动

10 个回复

倒序浏览
MasterJ
注册会员   /  发表于:2023-10-30 16:51:47
沙发
目前发现,不同时间save出来相同内容的文件,生成的MD5都不一致,无法判断文件内容是否改动
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-30 17:27:51
板凳
您好,可以参考这篇文章
https://gcdn.grapecity.com.cn/fo ... 6orderby%3Ddateline
不推荐使用M5的原因是:
M5验证原理是,只要有一个字节的内容发生了变化,得到的MD5值就会完全不相同。这一点是不太适用于Excel文件的。因为Excel文件中,除了基础数据,还有公式、透视表等其它的非结构化数据。Excel中的时间日期函数会随着打开文件的时间做自动的刷新,但其实这种变化,对用户来说,并不属于文件变化。因此MD5加密算法并不适用于Excel文件。
因此您可以参考此篇教程中针对SpreadJS或者Designer提出的方案。
回复 使用道具 举报
AirCat
金牌服务用户   /  发表于:2023-10-30 17:50:32
地板
Ellia.Duan 发表于 2023-10-30 17:27
您好,可以参考这篇文章
https://gcdn.grapecity.com.cn/fo ... 6orderby%3Ddateline
不推荐使用M5的原因 ...

好的,谢谢
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-30 17:54:03
5#
那本帖就先结帖啦,有问题欢迎发新帖询问。
回复 使用道具 举报
AirCat
金牌服务用户   /  发表于:2023-10-30 17:58:53
6#
发现这种方式去判断文件是否发生变化有些情况不会生效,如:在worksheet中切换activeCell和滚动当前worksheet内容区域;
请问有方法可以包含这些动作改动的变化吗
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-31 09:18:13
7#
您好,您提到的变化均不属于单元格内容的变化或者样式变化,所以上述给出的文件不包含这些变化。
为此,您可以做个事件监听,如在worksheet中切换activeCell,您可以监听cellClick事件,判断如果点击的单元格发生变化。
关于您提到的滚动当前worksheet内容区域,不是很明白您的需求,是否可以详细描述一下?

以及,关于您问题中的需求,大概明白您的使用场景,但是对于您提到的判断activeCell发生变化,您是否可以详细描述下您的使用场景。
回复 使用道具 举报
AirCat
金牌服务用户   /  发表于:2023-10-31 09:50:26
8#
Ellia.Duan 发表于 2023-10-31 09:18
您好,您提到的变化均不属于单元格内容的变化或者样式变化,所以上述给出的文件不包含这些变化。
为此,您 ...

场景就是workbook有变化就保存的情况,只是我们之前使用ssjson校验时单元格变化和滚动条位置变化也会被认为是workbook发生变化了,现在用sjs方式则不会认为发生变化,与之前的逻辑有所不同
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-31 11:40:01
9#
如果您现在用sjs将 ”活动单元格变化和滚动条位置变化“认为不会引起workbook发生变化,那么楼上的回复是可以解决您的问题的。
回复 使用道具 举报
AirCat
金牌服务用户   /  发表于:2023-10-31 12:08:17
10#
Ellia.Duan 发表于 2023-10-31 11:40
如果您现在用sjs将 ”活动单元格变化和滚动条位置变化“认为不会引起workbook发生变化,那么楼上的回复是可 ...

嗯嗯,这个问题不大
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部