使用 Excel JavaScript API 读取或写入大范围

使用这些模式可读取或写入大范围,同时避免资源限制错误。

  • 将大范围拆分为较小的块。 不要一次性加载或写入所有内容。
  • 例如,仅加载所需的 (, values 而不是 values,numberFormat,formulas) 。
  • 使用 getSpecialCellsRangeAreas 处理散点单元格,而不是大范围。
  • 如果遇到限制错误,请使用较小的块大小重试。
  • 在数据就位后应用格式设置。

何时拆分大范围

应用场景 应拆分区域的签名 方法
读取数百万个单元格 超时或资源错误 在行或列块中读取。 从 5k-20k 行开始。
编写大型结果集 单次 values 写入失败 在每个块) 具有相同列计数的行块 (写入。
稀疏更新 许多遥远的单元格 使用 getRangesRangeAreas生成组合地址字符串。
写入数据和格式 格式设置会减慢 Excel 首先写入值,然后写入格式。

延迟格式设置 & 计算

格式设置和计算密集型作(例如条件格式或公式写入)会增加大区域的时间。 建议改为:

  • 首先 (纯数字或文本) 写入原始值,然后在第二次传递中添加公式或格式。
  • 仅对必要的重新计算范围使用 setDirty
  • 将条件格式限制为使用行而不是整个列引用 (例如 A2:A5000 ,而不是 A:A 使用 getUsedRange) 。

后续步骤

另请参阅