古月梓彬 发表于 2024-7-8 16:55:33

Joestar.Xu 发表于 2024-7-8 13:53
您好,不可以的。

如果想要优化可以参考楼上的回复,针对具体的公式进行优化。

"修改VLOOKUP函数的参数,将列范围修改为具体的范围,如:A:A => A1:A1000",这个有相应的api说明吗,怎么修改 尝试修改row,lastrow 最终生成的还是A:A.

Joestar.Xu 发表于 2024-7-8 17:53:03

没太明白,您说的row和lastRow是什么?

此处修改暂时没有官方的API可以直接做到,听您的描述,这个公式是您这边通过一些参数生成的吗?如果是的话能否分享一下相关的代码,这边帮您看看如何优化。

JoeJin 发表于 2024-7-10 09:44:02

古月梓彬 发表于 2024-7-8 16:55
"修改VLOOKUP函数的参数,将列范围修改为具体的范围,如:A:A => A1:A1000",这个有相应的api说明吗,怎么 ...

应该是把公式中整列的引用改成,有数据部分的区域。
例如 把 A:A 改成 A1:A1000,GcExcel 与 SpreadJS 的设计是不同的,SpreadJS 有 UI 部分,所以有rowCount 和 columnCount 的概念。
GcExcel 与 Excel 一样,并没有行数列数,因此您在操作单元格的时候,可以直接操作特定的单元格,而不需要先新增行或者列。

在计算的时候, A:A 引用了整列,GcExcel 和 Excel 中,一个sheet,拥有 100多万行。因此公式中的 A:A 会引用100多万个单元格,这才是公式计算次数量大的原因。

另外,GcExcel 的中的 RowCount 和 ColumnCount,目前是为了与 SpreadJS 兼容的属性,目前并不在 GcExcel 中影像功能。
后续会计划考虑添加功能 RowCount 和 ColumnCount 可以作用于计算,已适配和 SpreadJS 一起使用的场景。

Joestar.Xu 发表于 2024-7-10 15:12:34

JoeJin 发表于 2024-7-10 09:44
应该是把公式中整列的引用改成,有数据部分的区域。
例如 把 A:A 改成 A1:A1000,GcExcel 与 SpreadJS...

{:5_110:}

古月梓彬 发表于 2024-7-10 18:44:05

JoeJin 发表于 2024-7-10 09:44
应该是把公式中整列的引用改成,有数据部分的区域。
例如 把 A:A 改成 A1:A1000,GcExcel 与 SpreadJS...

感谢回复,我们先临时解决一下。
不过 GC和Spreadjs 本应该是一体的,Spreadjs的文件要通过GC导出才可以。

所以我想知道的是:这个问题的解决,会在哪个版本来支持?预计什么时间?

Joestar.Xu 发表于 2024-7-11 09:02:14

您好,这个需求已经被我们列为了最高等级,但是具体的排期还没有正式出来,等到后续有确定的进展我会在本帖中回复您。

Joestar.Xu 发表于 2024-7-11 09:29:06

您好,该需求预计于V8.0中实现,发布时间约为12月。

古月梓彬 发表于 2024-7-16 18:20:51

Joestar.Xu 发表于 2024-7-11 09:29
您好,该需求预计于V8.0中实现,发布时间约为12月。

能否在小版本支持,8.0的我们没有授权码,修复的问题无法升级处理。

Joestar.Xu 发表于 2024-7-17 09:11:26

您好,目前来说无法在小版本中支持,该功能涉及到底层,需要修改的地方非常多,而且涉及到运算需要慎重修改,所以支持的工作量较大,只能在V8中计划支持。

Joestar.Xu 发表于 2024-10-22 09:00:28

您好,经调研,您可以使用一个临时的解决方法来提高性能,将所有公式如:“=VLOOKUP( $A4:$A4 ,$V:Z,5,0)”,更改为:“=VLOOKUP( $A4 ,$V:Z,5 ,0)“,请参考附件。
页: 1 [2]
查看完整版本: GcExcel7.1.0 数据加载到workbook 大量公式计算 耗时 cpu暴涨