找回密码
 立即注册

QQ登录

只需一步,快速开始

BND

高级会员

171

主题

529

帖子

1840

积分

高级会员

积分
1840
BND
高级会员   /  发表于:2024-12-3 18:25  /   查看:233  /  回复:10
如图,WPS跟Microsoft office打开同一个文件,相同的地方得出的值不相同。现在用户认为WPS的结果是正确的,如何解决?
image.png585697326.png

10 个回复

倒序浏览
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-12-4 09:03:42
沙发
您好,请上传下excel文件。
回复 使用道具 举报
Lewis
初级会员   /  发表于:2024-12-4 10:02:09
板凳
Excel是啥版本?看着不是正版。貌似single(@)函数没有被正确识别: image.png757756957.png
回复 使用道具 举报
BND
高级会员   /  发表于:2024-12-4 10:58:25
地板
Lewis 发表于 2024-12-4 10:02
Excel是啥版本?看着不是正版。貌似single(@)函数没有被正确识别:

image.png364965514.png

截图有wps跟msexcel的对照的。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-12-4 15:05:35
5#
您好,我用Ms excel 365打开是与WPS一致的。
image.png408169249.png
如楼上所言,目前推测与Excel版本有关系。请尝试更换excel 版本后进行下相关测试。
回复 使用道具 举报
BND
高级会员   /  发表于:2024-12-5 09:30:57
6#
Ellia.Duan 发表于 2024-12-4 15:05
您好,我用Ms excel 365打开是与WPS一致的。

如楼上所言,目前推测与Excel版本有关系。请尝试更换excel  ...

核心问题是gcexcel计算的出来的结果是与我截图的ms excel一致,与wps不一致。

不在于ms excel版本对与不对,ms excel版本对了,并不改变gcexcel计算的出来的结果。

看我的截图,现在用户反馈的是,我们gcexcel计算的结果,与他下载的excel文件用wps打开,结果不一致。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-12-5 15:07:48
7#
您好,根据您提供的excel文件,在GcExcel 中导入,然后获取“累计数据”中“E4”单元格的值,值是正确的82 。如下图所示
image.png92933043.png
当然,这个可能受到excel已经计算完成的因素影响。
所以,是否可以上传一份原始模板文件,中间做的代码操作(可以复现问题的最小代码片段),我们根据此流程来复现此问题。


回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-12-30 10:17:21
8#
您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-12-30 11:40:04
9#
本帖最后由 Ellia.Duan 于 2024-12-30 11:57 编辑

您好,根据您最新提供的文件asss.xlsx。
在本地Excel(版本:Miscrosoft 365)中打开,值为82
a870cec5e5927593fce044d60079cf3.png102661437.png



在GcExcel中打开,设置导入时不进行公式计算,结果为0 ,
如下图所示:
image.png178524779.png



setDoNotRecalculateAfterOpened设置为true以禁用重新计算。设置为false以启用重新计算。
image.png181213683.png
设置为true时将从缓存中取值。我将此excel文件,用xml工具解析,结果如下:
image.png907731323.png



我将深入调研此问题,有进展会及时联系您。DOCXLS-11782




回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2024-12-30 15:22:10
10#
您好,如果提供的excel文件是GcExcel生成的,那我们倒着看这个问题。


可能GcExcel在处理工作簿以及数据源后,没有计算,导致生成的excel文件中缓存值为0
如果我用下面的代码进行处理
  1. Workbook workbook = new Workbook();
  2. workbook.open(path + "asss.xlsx");
  3. workbook.save(path + "asss_resave.xlsx");

  4. Workbook workbook1 = new Workbook();
  5. XlsxOpenOptions options1 = new XlsxOpenOptions();
  6. options1.setDoNotRecalculateAfterOpened(true);
  7. workbook1.open(path + "asss_resave.xlsx", options1);
  8. IWorksheet worksheet = workbook1.getWorksheets().get("累计数据");
  9. System.out.println(worksheet.getRange("E4").getValue());
  10. Assert.assertEquals(82.0, worksheet.getRange("E4").getValue());
复制代码
发现最后E4单元格的值是82

目前,根据结果推断不出来GcExcel 处理您的业务逻辑过程中,遇到了什么问题。

所以,还是需要提供一个原始模板和数据源处理。

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部