古月梓彬 发表于 2024-9-14 10:02:31

【GCExcel7.1.5】sjs文件,open后再save,耗时严重,会卡死

本帖最后由 Wilson.Zhang 于 2024-9-27 16:48 编辑

产品:GcExcel
版本:7.1.5
调研编号:DOCXLS-11209
Last Review:2024-09-27
当前进展:用户文件中几乎每个单元格都包含了SUMIFS函数,每个单元格计算都会迭代AK$2:AK$20004,整表计算需要迭代202000020000次。建议优化函数写法以减少迭代次数,或者使用数据透视表,时间复杂度为O(n)。

【GCExcel7.1.5】sjs文件,open后再save,耗时严重,会卡死 - SpreadJS & GcExcel专区 - Bug反馈 - 葡萄城开发者社区 (grapecity.com.cn)
跟这个同样的现象,save卡死。   复现文件见附件, 已经按之前给出的方案把整列的设置为区域行了。

Wilson.Zhang 发表于 2024-9-14 12:24:14

您好!解析您提供的压缩包文件异常,请您检查后重新上传。

古月梓彬 发表于 2024-9-14 17:41:13

Wilson.Zhang 发表于 2024-9-14 12:24
您好!解析您提供的压缩包文件异常,请您检查后重新上传。

之前的问题已确认,是循环调用getuseRange耗时引起的, 能优化循环。后续处理问题又发现现在的问题,save耗时

Wilson.Zhang 发表于 2024-9-14 17:54:39

古月梓彬 发表于 2024-9-14 17:41
之前的问题已确认,是循环调用getuseRange耗时引起的, 能优化循环。后续处理问题又发现现在的问题,sa ...

我们调研一下给您结论。

Wilson.Zhang 发表于 2024-9-19 17:50:16

您好!我们从您提供的文件中发现几乎每个单元格包含一个SUMIFS函数,每个单元格的计算都会迭代AK$2:AK$20004,导致整个工作表需要迭代202000020000次,这是”慢“的原因所在。

由于文件中不包含数据,我们无法确定怎样的优化方案更适合您的需求场景。如果您的需求场景大量使用到SUMIFS函数,可以使用数据透视表处理,数据透视表更快。您可以自行斟酌下。

Wilson.Zhang 发表于 2024-9-27 16:49:15

您好!请问下您这个问题当前进展如何了?如果仍未解决,可以提供一个包含数据的文件,我们再调研尝试下。

Wilson.Zhang 发表于 2024-9-29 10:22:57

您好!请问下您这个问题当前进展如何了?如果仍未解决,可以提供一个包含数据的文件,我们再调研尝试下。
页: [1]
查看完整版本: 【GCExcel7.1.5】sjs文件,open后再save,耗时严重,会卡死