Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何在Google Apps脚本(GAS)中高效地输出到非连续范围_Google Apps Script - Fatal编程技术网

Google apps script 如何在Google Apps脚本(GAS)中高效地输出到非连续范围

Google apps script 如何在Google Apps脚本(GAS)中高效地输出到非连续范围,google-apps-script,Google Apps Script,我不熟悉谷歌脚本,所以感谢你的帮助 以下是我的数据(3个非连续记录,4个非连续字段): 我有一个项目数组,每个项目是一个包含4个键的对象。我想以尽可能少的SetValue请求输出到googlesheets。如果我不能在一次调用中完成,那么一次输出每个项目是最合乎逻辑的 我的想法是,我可以为跨越整个列的字段1和字段4创建范围。然后我可以创建跨越整个项目行的范围。一旦我组装了一个由2个值组成的数组,那么2之间的交集就是我想要输出到的范围 或者,假设我知道下面每个单元格的行/列,我可以返回范围并使用

我不熟悉谷歌脚本,所以感谢你的帮助

以下是我的数据(3个非连续记录,4个非连续字段):

我有一个项目数组,每个项目是一个包含4个键的对象。我想以尽可能少的SetValue请求输出到googlesheets。如果我不能在一次调用中完成,那么一次输出每个项目是最合乎逻辑的

我的想法是,我可以为跨越整个列的字段1和字段4创建范围。然后我可以创建跨越整个项目行的范围。一旦我组装了一个由2个值组成的数组,那么2之间的交集就是我想要输出到的范围

或者,假设我知道下面每个单元格的行/列,我可以返回范围并使用范围的并集来创建映射

但在天然气中是否有一个函数可以进行交叉或联合呢?还是我最好一个一个地输出每个单元格


谢谢你的帮助

没有这样的功能。它要么是一个接一个的,要么是连续的单元格

但是有很多技巧/选择可能对你有用。正如Sandy在评论中指出的,您可以获得一个包含所有必需单元格的连续区域,并将非必需单元格设置为空白或其原始值。这有不适用于公式的缺点

您还可以使用简单的公式“指向”连续范围预先配置所需的单元格。这将是一次简单的批量更新

如果确实需要批量设置,您还可以获取大范围的所有值公式,并将所有普通值转换为它们的等效公式,例如
abc
变成
=“abc”
1/1/2015
=DATE(2015,1,1)
(是的,这很麻烦)然后使用setFormulas设置所有内容,包括原始公式和转换为公式的值。在您不想更改的单元格中不进行实际内容更改,并更改所需内容,这一切都在一次批量操作中完成


不管怎么说,这些只是权宜之计。正如第一句所说,这是不可能的,句号。您可能希望在应用程序脚本问题跟踪器中启动,为该功能投票并接收更新。

GAS使用JavaScript。JavaScript可以对数组和对象做什么,GAS都可以。
SpreadsheetApp
服务使用二维数组读取和写入数据。您所需要做的就是在内部数组中为要留空的单元格设置空白元素。或者,您可以获取所有原始数据,然后只需将所需的更改注入二维数组,并将其写回电子表格。因此,对电子表格的写入可以使用该策略进行一次调用。如果中间的单元格不是空的,实际上是链接/公式,那么这可能是个问题。也许你可以编写一些代码并进行测试。