首页 > 解决方案 > GAS 中大量数据的 Properties Service 的替代方案?

问题描述

我有一个 GAS 搜索脚本,它发送一个 API 请求并取回我在 Google 表格中显示的结果。我有另一个数据分析脚本,它根据搜索结果进行各种数据计算。

目前我在数据分析中使用 .getRange().getValues() 从工作表中获取值。但是,这很慢,因为它是一个大型多维数组。

有没有办法可以将初始搜索结果存储在搜索脚本中,然后可以在数据分析脚本中访问?

我曾尝试使用 Google 的 Properties Service,但数据太大。将其存储在工作表中也不是一种选择,因为这已经是我正在做的事情,而且速度非常慢。

谢谢。

标签: google-apps-scriptgoogle-sheets

解决方案


为了加快复制和粘贴值的速度,您应该使用批处理操作getRange,因为对and的许多不同调用getValues是缓慢且低效的。要运行批处理操作,您必须使用getDataRange创建一个与数据表一样大的数组,然后使用getValues它在一次操作中读取它们。您最终将得到一个包含所有数据的二维数组。最后,您可以迭代此数组以拼接与您的条件不匹配的元素。

如果要将结果粘贴到工作表上,则必须创建一个与结果数组一样大的范围并setValues在其上使用。您可以参考这个答案来比较不同的复制和粘贴算法。

如果您需要进一步的帮助,请告诉我您的项目的详细信息。如果您有任何疑问,请随时向我寻求更多说明。


推荐阅读