请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

viperous_devil
金牌服务用户   /  发表于:2019-2-12 18:11  /   查看:3974  /  回复:7
简单来说就是,涉及到几个公式的计算问题,计算结果不对。在附件里是一个Excle文件,第一行数据是使用spreadJs导出的文件里的数据,第二行是使用后台其他方式导出的文件。第二行 的结果 是正确的 ,第一行的,和界面展示的效果一样,是错误的  ,使用第二行的 J - T 列 以及    BS-CS 列   替换掉   第一行 的,就完全正确了,不知道为什么。请帮忙解决下,看下是什么情况。如何解决在界面上和导出的错误?困了很久,求解救!!!

新建 Microsoft Excel 工作表.rar

10.51 KB, 下载次数: 308

7 个回复

倒序浏览
viperous_devil
金牌服务用户   /  发表于:2019-2-13 09:20:33
沙发
在下猜测是应为,以文本形式储存数字导致的问题,我说的第一行的那些列 是以文本形式储存的数字 如果转换 为数字的话 就好了,这个问题如何解决?????
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-13 10:47:23
板凳
您好,我看到了您的Excel文档,我把文档中的内容复制到SpreadJS中并手动添加公式,不会出现误差情况,如图:

image.png880056762.png

您这个文档是使用SpreadJS生成的,还是从外部文档导入的?

导出前做了哪些操作?SpreadJS版本号多少?

最好提供一个Demo示例。
回复 使用道具 举报
viperous_devil
金牌服务用户   /  发表于:2019-2-13 11:19:30
地板
KevinChen 发表于 2019-2-13 10:47
您好,我看到了您的Excel文档,我把文档中的内容复制到SpreadJS中并手动添加公式,不会出现误差情况,如图 ...

感谢回复,我之前发的文件里的内容,第一条是spreadjs 插件的 导出功能直接导出的,所有的值和界面上显示的值完全相同,我这次把导出的文件发给你(第一行的数字是新文件的第480条数据)。第二行是使用java poi导出来的。

具体的,我发现spreadjs 是使用文本保存的数字。poi我不知道是否经过什么处理,数字就是数字,结果导致了计算错误。

我使用的是v12.0 测试版。公司使用的是v11.0  ,之前遇到过这个问题。你们回复说v12没问题并发给我们一个v12的测试版。

是不是我们界面展示的时候,对这个数字的处理不对?

Test(3).rar

927.52 KB, 下载次数: 244

回复 使用道具 举报
viperous_devil
金牌服务用户   /  发表于:2019-2-13 11:25:31
5#
本帖最后由 viperous_devil 于 2019-2-13 11:26 编辑
KevinChen 发表于 2019-2-13 10:47
您好,我看到了您的Excel文档,我把文档中的内容复制到SpreadJS中并手动添加公式,不会出现误差情况,如图 ...

顺手把poi导出的发给你,你可以参考下,数据和spreadJs 导出的一样,就是公式计算的不一样  可以参考 第480行的数据。Demo我无法提供。

forecast-sellthrough (2).rar

1.12 MB, 下载次数: 256

回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-13 14:48:41
6#
您好,我对比了两个版本的Excel文档,

发现SpreadJS版导出的单元格格式不是通常的数字格式,

如图:

image.png748240051.png

而poi导出的格式是这样:

image.png209492491.png

您可以检查在使用SpreadJS生成文档的时候,是否设置了formatter,

参考学习指南:

https://demo.grapecity.com.cn/Sp ... emos/basicFormatter

另外,SpreadJS不会自动把文本转化为数字,或把数字转为文本,

例如:

sheet.setValue(1,1,100); 和 sheet.setValue(1,1,"100");

前者单元格的value就是数字100,而后者单元格的值是字符串"100"

您可以重点检查一下代码中是否由于使用了字符串拼接等方式发生了自动类型转化,

或是后台拿到的数据是字符串,需要转换一下格式。
回复 使用道具 举报
viperous_devil
金牌服务用户   /  发表于:2019-2-14 10:12:42
7#
已解决,感谢
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-2-14 10:46:22
8#
不客气,很高兴解决了您的问题,也感谢您的及时反馈,本帖我结贴了,有新的问题欢迎发新贴交流。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部