SpreadJS显示和Excel不一致
本帖最后由 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打开
spreadJs显示效果:
详见调研Demo见附件 本帖最后由 Richard.Huang 于 2024-4-15 16:57 编辑
您好,您在帖子中所描述的现象我在本地进行了重现,至于该现象的原因我们还需要进行进一步的调研定位。后续有相关调研进展我会第一时间在本贴中进行跟进。调研编号:SJS-23826 您好这个问题我们调研了一下,发现是Excel的精度性缺陷,我们SpreaJS计算并没有错误,在Excel中G8-F8不等于0,因此Excel中这里计算结果为不通过
这个问题本质是引申到IEEE754的双精度浮点数的运算精度问题(https://en.wikipedia.org/wiki/IEEE_754)
因为这个标准的设定,天生的,在不同系统下浮点数运算必然会产生浮点误差。
然后各个产品在内部进行精度处理了,而Excel在这里的处理因为某种考虑没做这个处理,我们不得而知,这里Excel计算结果就是错误了。
如果您期望两者一致,可以参考Excel官方给出的一些解决方案:https://learn.microsoft.com/zh-cn/office/troubleshoot/excel/floating-point-arithmetic-inaccurate-result
期望:SpreadJS、GcExcel以及Excel三者都是一样的值。如果你们认为Excel计算错误,那么能否保证SpreadJS、GcExcel显示结果一致那?目前通过GC取值,显示的和Excel是一致的:不通过。 本帖最后由 Richard.Huang 于 2024-4-18 16:43 编辑
行云数据 发表于 2024-4-18 10:41
期望:SpreadJS、GcExcel以及Excel三者都是一样的值。如果你们认为Excel计算错误,那么能否保证SpreadJS、G ...
了解了,我们将会针对GcExcel计算问题进行再进一步调研,后续有相关调研进展我会第一时间在本贴中进行跟进;调研编号:DOCXLS-10195 本帖最后由 Richard.Huang 于 2024-4-22 14:12 编辑
最新调研进展:目前本贴中遇到的问题已经被定位,后续我们将会在未来V7.1.1版本的迭代中进行优化处理。之后有相关修复进展我会第一时间在本贴中进行跟进。感谢您提供的线索反馈,将为您发200金币作为奖励。 最新调研进展:本贴中提及的问题原因在上面做了描述,经过讨论,我们的GcExcel决定维持当前的行为不变,因为偏离Excel的结果将违背GcExcel与Excel强兼容的基本原则,因此未来我们将在SpreadJS前端侧来兼容这一块,让SpreadJS、Excel、GcExcel三者计算结果一致。新的调研编号:SJS-23991 GC更新到7.1.0+SpreadJs更新到17.0.5,上述问题任然存在。(GC取值和spreadjs显示不一致)
您好,上文也提到了,我们计划在SpreadJS侧来兼容这一块。
关于此问题计划在17.0.9版本进行兼容。
最新调研进展:本贴中提及的问题已经在SpreadJSV17.0.9中得到优化,新版本已经发布,您可以通过升级SpreadJS的版本来解决该问题,并开启以下配置后重新计算就可以让SpreadJS和GcExcel计算结果一致了:
GC.Spread.CalcEngine.ExcelCompatibleCalcMode = true
本贴就先结帖了,后续有其他相关问题,欢迎发新帖询问
页:
[1]