本帖最后由 Ellia.Duan 于 2025-3-31 10:15 编辑
从16版本以来,我们推出了导入 sjs/excel 可以通过懒加载的方式提升打开性能。
首先,我们看一下懒加载是什么,什么情况下适用。
打开官网 Designer ,将鼠标悬浮在懒加载旁边,可以看到一行话:“仅将活动那个工作表直接加载,其他工作表按需加载。当工作簿中有很多工作表时,启用此选项可加快初始加载速度”
通过这行文字,我们可以清晰,懒加载的适用场景:多 sheet ;初始加载慢。
有不少客户有一点困惑,如果当前活动表单公式中存在引用sheet,那这个公式还会正确计算吗?
答案是会的,我们来看下懒加载策略:
- 如果当前 activesheet 没有依赖 sheet ,那么只会加载当前 sheet
- 懒加载过程中,当加载 activesheet 的时候,会同时加载依赖 sheet 的 value (只有 value ),来保证当前加载 sheet 的公式正确。
- 当懒加载过程中,通过 API 去get另外一个 sheet ,那么也会激活对未加载 sheet 的加载过程。
那么,有一个问题,在 open/import 成功导入文件的回调函数中,对 spread.sheets 进行了遍历,如下代码。
此时在打开文件时,设置“懒加载” 是否有效?
答案是“无效的” ,因为通过 api 遍历了所有的 sheet ,不符合懒加载的策略,所以,此时打开速度会发现和不使用“懒加载”是一样的。
- let count = spread.getSheetCount();
- for (let index = 0; index < count; index++) {
- let sheet = spread.getSheet(index);
- }
复制代码
|
|