找回密码
 立即注册

QQ登录

只需一步,快速开始

Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-2 14:37:19
11#
我这边实际测试了一下,发现这个Excel文件在导入后存在大量的空行,这些空行在遍历的时候不会跳过,造成了比较严重的性能问题。

您可以在导入这个文件后,调整整个Sheet的行数,将空行去掉,降低遍历的次数,这样就可以提高性能了。

至于如何根据数据来调整sheet的大小,可以使用getUsedRange接口,即:sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.data);获取有数据的区域,然后设置表单的大小为有数据的区域大小即可。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2024-4-2 15:19:11
12#
Joestar.Xu 发表于 2024-4-2 14:37
我这边实际测试了一下,发现这个Excel文件在导入后存在大量的空行,这些空行在遍历的时候不会跳过,造成了 ...

您的意思是数据下面的空行嘛?
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-2 15:29:25
13#
阿仁 发表于 2024-4-2 15:19
您的意思是数据下面的空行嘛?

是的。导入到SpreadJS中后您会发现有接近一万行的空行。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2024-4-2 15:39:28
14#
Joestar.Xu 发表于 2024-4-2 15:29
是的。导入到SpreadJS中后您会发现有接近一万行的空行。

这个可以在你们的在线编辑器里面处理吗,我把我们的模版都处理一下,excel里面这个空行删不掉。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-2 15:48:44
15#
可以的,可以参考我之前说的getUsedRange接口,把空行去掉即可。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2024-4-2 17:15:31
16#
Joestar.Xu 发表于 2024-4-2 14:37
我这边实际测试了一下,发现这个Excel文件在导入后存在大量的空行,这些空行在遍历的时候不会跳过,造成了 ...

我看了下,您的意思是我们去使用 sheet.getUsedRange(GC.Spread.Sheets.UsedRangeType.data)去获取边界,从而在遍历的时候不去遍历空行,而不是从文件角度去净化excel文件是吧?我这边知道这个问题是想着能不能把这个空行从excel文件中删除。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-2 17:30:35
17#
1、根据getUsedRange的数据设定遍历的范围可以不修改原始的数据文件,但是大量的空行也会对渲染造成压力。
2、根据getUsedRange的数据直接去掉多余的空行,无论从遍历的角度还是从渲染的角度都会有一个不小的提升。

所以我还是建议您根据getUsedRange的数据,直接使用setRowCount接口去掉多余的空行以实现提升性能的需求。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
阿仁
金牌服务用户   /  发表于:2024-4-3 08:56:20
18#
Joestar.Xu 发表于 2024-4-2 17:30
1、根据getUsedRange的数据设定遍历的范围可以不修改原始的数据文件,但是大量的空行也会对渲染造成压力。
...

我这边测试解决了,但是还想问一下这个怎么从文件层面解决,这个文件在excel里面看不出来问题的,导进来多的空行是文件本身的嘛?如果这些空行本身就占据了文件的大小,那么我们处理文件应该会更快。
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-3 09:34:37
19#
SpreadJS在导入一个Excel文件的时候,会判断这个文件中所有单元格的修改状态从而计算Sheet的最大行数和列数,如果在Excel中有对“空白单元格(看起来是空白,实际上可能有一个空格或修改了样式但没有值)”修改的话,都会造成导入时被检测到,从而使最大行数为最后一行被修改的单元格行数+1,最大列数同理。

一般来说很难从文件层面去修改,因为无法判断那些“空白单元格”是否是无用的,还是建议您在SpreadJS中根据usedRange来判断数据范围,修正Sheet的大小。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-3 09:36:55
20#
另外,空行因为没有数值,本身对文件的大小影响有限。不过具体情况需要具体看待,如果没有任何数值但是存在大量的样式、条件格式或其他的数据,可能也会增加文件本身的大小。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部