找回密码
 立即注册

QQ登录

只需一步,快速开始

行云数据
金牌服务用户   /  发表于:2022-9-15 18:18  /   查看:1443  /  回复:8
本帖最后由 Ellia.Duan 于 2022-11-17 17:23 编辑

问题描述:
spreadjs能够处理参与计算含有空格的数字,但是用GCExcel导出的excel文件确不能;
希望处理结果:
spreadjs和GCExcel显示保持一致;
操作步骤:
1、SpreadJS加载通过GCExcel转换JSON文件到前端显示,在excel文件单元格输入内容后SpreadJs会自动进行引用公式单元格计算;
image.png528172912.png


2、将前端json提交后端,通过GcExcel转换excel文件存储;

3、打开存储excel文件查看内容和页面SpreadJS显示不一致;
image.png987824401.png
详见附件DEMO

FormulaPanel.zip

4.31 MB, 下载次数: 55

8 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-10-25 12:06:13
来自 7#
SpreadJS有一个接口可以控制字符串类型value是否参与计算。
为true时表示string类型数字不参与计算,与Excel一致。
为false表示string类型数字参与计算,也是默认值。
GC.Spread.CalcEngine.ExcelCompatibleCalcMode = true
在贴中示例demo中测试了此API,结果如下:
0e0003e5defc7a7ceb6527adeabe824.jpg859482116.png
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-16 10:14:29
沙发
您好,
原因是L5单元格的value是一个字符串,而不是number,
在Excel中,字符串形式数字是不参与公式计算的,这属于Excel的限制,SpreadJS无法控制Excel的计算。
建议您将L5单元格value修改为number形式,如下图,然后您再测试下导出的excel文件是否可以正常计算。
image.png185594481.png
回复 使用道具 举报
行云数据
金牌服务用户   /  发表于:2022-9-16 15:44:38
板凳
这个我们知道是SpreadJS无法控制Excel的计算。我们希望SpreadJS前端计算的结果和excel保持一致。Excel的无法计算结果,但是为什么SpreadJS可以计算那?导致用户下载下来的excel和线上用spreadjs预览的结果不相同
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-16 17:21:58
地板
本帖最后由 Lynn.Dou 于 2022-9-16 17:23 编辑

SpreadJS之所以支持字符串计算也是考虑到一些用户的编辑需求的,直观上来看用户很难判断value是字符串还是number,
如果不对字符串数字进行计算,用户难以直接判断原因,如会误判为公式引擎计算错误,基于此做了支持。
您描述的需求这边也理解,已将此问题记录下来反馈至产品需求库中,后续会进行相应的评估如果计划支持此功能会在贴中通知您。
回复 使用道具 举报
行云数据
金牌服务用户   /  发表于:2022-9-16 17:33:01
5#
嗯,我们的诉求就是spreadjs和excel显示一致;不要导致用户下载下来的excel和线上用spreadjs预览的结果不相同
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-16 18:21:31
6#
需求了解,如果后续有相关计划会在贴中通知您。
您可以先参考前面提到的方案解决此问题。
回复 使用道具 举报
行云数据
金牌服务用户   /  发表于:2022-11-18 14:49:20
8#
感谢老师的回复,已经按GC.Spread.CalcEngine.ExcelCompatibleCalcMode配置非数字类型不予计算,保持和excel显示一致。
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-18 14:57:14
9#
问题解决了就好,那本贴就先结贴了,有问题欢迎另开新帖交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部