BND 发表于 2022-11-8 15:45:13

【GcExcel 5.1.4】【获取有公式的单元格的值特别耗时】【DOCXLS-6979】

本帖最后由 Ellia.Duan 于 2022-11-10 15:23 编辑

1、这是spreadjs的表格模板。

2、将ssjson传到后端用gcexcel运算,获取有别名的单元格(500多个)的值(excel函数计算),对耗时超1秒的IRange.getValue()进行日志输出。


3、在500多次IRange.getValue()中,发现又多次是很耗时的。
测试一:

测试二

最终,在GcExcel中运行一个不包含源表页签数据的空模板,500多次IRange.getValue()的执行总耗时测试一:478秒、测试二515秒,都在8分钟左右。

系统产品设计要求是,有源表页签数据(10w以内)的情况下总耗时不超过5分钟。请问如何优化?

* 源表页签: 指excel函数引用的某些字段对应的页签,这些页签用于纯加载业务源表数据。




Ellia.Duan 发表于 2022-11-8 17:44:11

请上传下您的ssjson文件,以及GCExcel测试代码。

BND 发表于 2022-11-8 19:12:10

Ellia.Duan 发表于 2022-11-8 17:44
请上传下您的ssjson文件,以及GCExcel测试代码。

测试代码见附件《gcexceldemo.rar》

Ellia.Duan 发表于 2022-11-9 10:30:55

BND 发表于 2022-11-8 19:12
测试代码见附件《gcexceldemo.rar》

代码收到,这边会调研下如何优化,有结果会第一时间通知您。

Ellia.Duan 发表于 2022-11-9 15:05:23

本帖最后由 Ellia.Duan 于 2022-11-10 15:08 编辑

Ellia.Duan 发表于 2022-11-9 10:30
代码收到,这边会调研下如何优化,有结果会第一时间通知您。
您好,根据您的代码做了一些改动,
改动一:fromJson后,禁用了公式计算workbook.setEnableCalculation(false);改动二:getRange获取的不是别名,因为禁掉公式计算后,getRange(别名)会报错,所以这里截取了refer这个字符串。strRange = refer.substring(end+1, refer.length());

range = sheet.getRange(strRange))经过上面的改动后,速度会很快,
最后用时73ms


同时,这边已将此问题报与研发,请研发帮忙可以是否有其他优化方式。
具体修改后的文件见附件。

BND 发表于 2022-11-10 14:24:35

Ellia.Duan 发表于 2022-11-9 15:05
您好,根据您的代码做了一些改动,
改动一:fromJson后,禁用了公式计算改动二:getRange获取的不是别名 ...

改动一:fromJson后,禁用了公式计算
[*]workbook.setEnableCalculation(false);

复制代码
改动二:getRange获取的不是别名,因为禁掉公式计算后,getRange(别名)会报错,所以这里截取了refer这个字符串。
[*]strRange = refer.substring(end+1, refer.length());
[*]
[*]range = sheet.getRange(strRange))

复制代码

进行以上两处改动之后,会导致更严重的问题:无法算出正确值(应该是改动一禁用了公式的原因):



以下没有进行【改动一、改动二】的结果,如下图:



目的是要在满足设计的性能要求的前提下,正确的获得有别名的单元格的函数公式算出来的值。




Ellia.Duan 发表于 2022-11-10 15:09:35

BND 发表于 2022-11-10 14:24
改动一:fromJson后,禁用了公式计算
[*]workbook.setEnableCalculation(false);



问题收到,这边已报给研发调研是否有更好的解决方法,待解决后,第一时间回复您。

Ellia.Duan 发表于 2022-11-10 16:52:50

您好,经研发团队确认,这个性能问题需要在V5.2.5中修复。待V5.2.5上线后,这边会通知您下载更新。同时这边会为您送上金币,感谢您的反馈。

BND 发表于 2022-11-10 20:33:27

Ellia.Duan 发表于 2022-11-10 16:52
您好,经研发团队确认,这个性能问题需要在V5.2.5中修复。待V5.2.5上线后,这边会通知您下载更新。同时这边 ...

谢谢。V5.2.5版本有大概的日期么?我们这边在线上用这个功能,用户很关心。

Ellia.Duan 发表于 2022-11-11 11:56:48

您好,V5.2.5预计在这个月24日发布,这个是个初步估计时间,可以作为参考,以实际发布时间为准。
还有一个问题想问下您,您这边测试环境上是否有相关问题测试用例,或者在测试环境上没有发现此问题吗?
页: [1] 2
查看完整版本: 【GcExcel 5.1.4】【获取有公式的单元格的值特别耗时】【DOCXLS-6979】