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

时间:2015-05-14 21:32:57

标签: google-apps-script

我是Google Script的新手,非常感谢您的帮助!

这是我的数据的样子(3个非连续记录,4个非连续字段): https://docs.google.com/spreadsheets/d/18FFB2HlcfcciHj7NPmihZbuf47op2UMdRTKfpyTqowU/edit#gid=0

我有一个项目数组,每个项目都是一个包含4个键的对象。我希望尽可能少的SetValue请求输出到Google表格。如果我无法在1次通话中执行此操作,那么一次输出每个项目最合乎逻辑。

我的想法是我可以为跨越整个列的字段1和4创建范围。然后我可以创建跨越整个Item行的范围。然后,当我组装了一个包含2个值的数组时,2之间的INTERSECTION是我要输出的范围。

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

但是在GAS中是否有交叉或联盟的功能?或者我最好只输出每个单元格1?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

没有这样的功能。它是一个接一个的或连续的细胞。

但是有很多技巧/替代品可能适合你。正如桑迪在评论中指出的那样,你可以获得一个连续的范围,其中包含所有必需的单元格,并将非必需的单元格设置为空白或原始值。这有不起公式的缺点。

您还可以使用简单的公式预先配置所需的单元格"指向"到一个连续的范围。那只是一次批量更新。

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

无论如何,这些只是解决方法。如第一句所述,这是不可能的,期间。您可能希望在Apps脚本问题跟踪器中对this report加注星标,以对此功能进行投票并接收更新。