使用这些模式可读取或写入大范围,同时避免资源限制错误。
- 将大范围拆分为较小的块。 不要一次性加载或写入所有内容。
- 例如,仅加载所需的 (,
values而不是values,numberFormat,formulas) 。 - 使用
getSpecialCells和RangeAreas处理散点单元格,而不是大范围。 - 如果遇到限制错误,请使用较小的块大小重试。
- 在数据就位后应用格式设置。
何时拆分大范围
| 应用场景 | 应拆分区域的签名 | 方法 |
|---|---|---|
| 读取数百万个单元格 | 超时或资源错误 | 在行或列块中读取。 从 5k-20k 行开始。 |
| 编写大型结果集 | 单次 values 写入失败 |
在每个块) 具有相同列计数的行块 (写入。 |
| 稀疏更新 | 许多遥远的单元格 | 使用 getRanges 和 RangeAreas生成组合地址字符串。 |
| 写入数据和格式 | 格式设置会减慢 Excel | 首先写入值,然后写入格式。 |
延迟格式设置 & 计算
格式设置和计算密集型作(例如条件格式或公式写入)会增加大区域的时间。 建议改为:
- 首先 (纯数字或文本) 写入原始值,然后在第二次传递中添加公式或格式。
- 仅对必要的重新计算范围使用
setDirty。 - 将条件格式限制为使用行而不是整个列引用 (例如
A2:A5000,而不是A:A使用getUsedRange) 。