BND 发表于 2024-12-3 18:25:19

GExcel生成的excel用wps与Microsoft打开结果不相同

如图,WPS跟Microsoft office打开同一个文件,相同的地方得出的值不相同。现在用户认为WPS的结果是正确的,如何解决?

Ellia.Duan 发表于 2024-12-4 09:03:42

您好,请上传下excel文件。

Lewis 发表于 2024-12-4 10:02:09

Excel是啥版本?看着不是正版。貌似single(@)函数没有被正确识别:

BND 发表于 2024-12-4 10:58:25

Lewis 发表于 2024-12-4 10:02
Excel是啥版本?看着不是正版。貌似single(@)函数没有被正确识别:



截图有wps跟msexcel的对照的。

Ellia.Duan 发表于 2024-12-4 15:05:35

您好,我用Ms excel 365打开是与WPS一致的。

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

BND 发表于 2024-12-5 09:30:57

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.Duan 发表于 2024-12-5 15:07:48

您好,根据您提供的excel文件,在GcExcel 中导入,然后获取“累计数据”中“E4”单元格的值,值是正确的82 。如下图所示

当然,这个可能受到excel已经计算完成的因素影响。
所以,是否可以上传一份原始模板文件,中间做的代码操作(可以复现问题的最小代码片段),我们根据此流程来复现此问题。


Joestar.Xu 发表于 2024-12-30 10:17:21

您好,由于本帖较长时间没有回复,本帖先做结贴处理了,后续如您有其他问题,欢迎您开新帖提问。

Ellia.Duan 发表于 2024-12-30 11:40:04

本帖最后由 Ellia.Duan 于 2024-12-30 11:57 编辑

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




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




setDoNotRecalculateAfterOpened设置为true以禁用重新计算。设置为false以启用重新计算。

设置为true时将从缓存中取值。我将此excel文件,用xml工具解析,结果如下:




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




Ellia.Duan 发表于 2024-12-30 15:22:10

您好,如果提供的excel文件是GcExcel生成的,那我们倒着看这个问题。


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

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

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

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

页: [1] 2
查看完整版本: GExcel生成的excel用wps与Microsoft打开结果不相同