找回密码
 立即注册

QQ登录

只需一步,快速开始

行云数据
金牌服务用户   /  发表于:2024-4-15 16:33  /   查看:2360  /  回复:9
本帖最后由 Richard.Huang 于 2024-5-24 10:19 编辑

产品:SpreadJS、GcExcel
版本:SpreadJS V17.0.5、GcExcel V7.0.5
调研编号:SJS-23991、DOCXLS-10195(已经调研结束)、SJS-23826(已经调研结束)
LastReview:2024/05/24
该问题已经被SpreadJS修复,开启GC.Spread.CalcEngine.ExcelCompatibleCalcMode = true后重新计算可以解决问题

通过GC加载Excel文件,再页面通过SpreadJS打开,显示结果和Excel软件打开效果不一致;

Excel打开
image.png832593078.png
spreadJs显示效果:
image.png261336974.png
详见调研Demo见附件

showDemo.zip

7.6 MB, 阅读权限: 150, 下载次数: 5

评分

参与人数 1金币 +200 收起 理由
Richard.Huang + 200 很给力!

查看全部评分

9 个回复

倒序浏览
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-15 16:50:58
沙发
本帖最后由 Richard.Huang 于 2024-4-15 16:57 编辑

您好,您在帖子中所描述的现象我在本地进行了重现,至于该现象的原因我们还需要进行进一步的调研定位。后续有相关调研进展我会第一时间在本贴中进行跟进。调研编号:SJS-23826
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-18 10:30:03
板凳
您好这个问题我们调研了一下,发现是Excel的精度性缺陷,我们SpreaJS计算并没有错误,在Excel中G8-F8不等于0,因此Excel中这里计算结果为不通过
image.png254811095.png
这个问题本质是引申到IEEE754的双精度浮点数的运算精度问题(https://en.wikipedia.org/wiki/IEEE_754
因为这个标准的设定,天生的,在不同系统下浮点数运算必然会产生浮点误差。
然后各个产品在内部进行精度处理了,而Excel在这里的处理因为某种考虑没做这个处理,我们不得而知,这里Excel计算结果就是错误了。

如果您期望两者一致,可以参考Excel官方给出的一些解决方案:https://learn.microsoft.com/zh-c ... c-inaccurate-result
image.png868817748.png
回复 使用道具 举报
行云数据
金牌服务用户   /  发表于:2024-4-18 10:41:47
地板
期望:SpreadJS、GcExcel以及Excel三者都是一样的值。如果你们认为Excel计算错误,那么能否保证SpreadJS、GcExcel显示结果一致那?目前通过GC取值,显示的和Excel是一致的:不通过。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-18 16:34:46
5#
本帖最后由 Richard.Huang 于 2024-4-18 16:43 编辑
行云数据 发表于 2024-4-18 10:41
期望:SpreadJS、GcExcel以及Excel三者都是一样的值。如果你们认为Excel计算错误,那么能否保证SpreadJS、G ...

了解了,我们将会针对GcExcel计算问题进行再进一步调研,后续有相关调研进展我会第一时间在本贴中进行跟进;调研编号:DOCXLS-10195
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-4-22 14:10:35
6#
本帖最后由 Richard.Huang 于 2024-4-22 14:12 编辑

最新调研进展:目前本贴中遇到的问题已经被定位,后续我们将会在未来V7.1.1版本的迭代中进行优化处理。之后有相关修复进展我会第一时间在本贴中进行跟进。感谢您提供的线索反馈,将为您发200金币作为奖励。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-8 09:43:52
7#
最新调研进展:本贴中提及的问题原因在上面做了描述,经过讨论,我们的GcExcel决定维持当前的行为不变,因为偏离Excel的结果将违背GcExcel与Excel强兼容的基本原则,因此未来我们将在SpreadJS前端侧来兼容这一块,让SpreadJS、Excel、GcExcel三者计算结果一致。新的调研编号:SJS-23991
回复 使用道具 举报
行云数据
金牌服务用户   /  发表于:2024-5-11 14:22:01
8#
GC更新到7.1.0+SpreadJs更新到17.0.5,上述问题任然存在。(GC取值和spreadjs显示不一致)
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-5-11 18:07:08
9#
您好,上文也提到了,我们计划在SpreadJS侧来兼容这一块。

关于此问题计划在17.0.9版本进行兼容。
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-5-24 10:18:16
10#
最新调研进展:本贴中提及的问题已经在SpreadJSV17.0.9中得到优化,新版本已经发布,您可以通过升级SpreadJS的版本来解决该问题,并开启以下配置后重新计算就可以让SpreadJS和GcExcel计算结果一致了:
GC.Spread.CalcEngine.ExcelCompatibleCalcMode = true

本贴就先结帖了,后续有其他相关问题,欢迎发新帖询问
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部