google-apps-script - 如何有效地输出到 Google Apps 脚本 (GAS) 中的非连续范围

标签 google-apps-script

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

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

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

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

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

但是GAS中有没有做交集或并集的函数?或者我最好只是一一输出每个单元格?

感谢您的帮助!

最佳答案

没有这样的功能。它可以是一个接一个的单元格,也可以是连续的单元格。

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

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

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

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

关于google-apps-script - 如何有效地输出到 Google Apps 脚本 (GAS) 中的非连续范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30247734/

相关文章:

javascript - onEdit、breakApart 未按计划工作

google-apps-script - 是否可以在谷歌表单提交上显示弹出窗口

javascript - 如何修复 'Illegal character. (line 6, file "Code")' on Google Script

javascript - Google 脚本/表 : How to aggregate row/objects based on values?

google-apps-script - Google 脚本 - 异常 : Cannot retrieve the next object: iterator has reached the end

html - 跳转到 GAS html 中的元素

google-apps-script - google脚本中的html字符串到google doc格式文件

javascript - 如何在特定脚本上调用参数为 `findRow(s)` 的函数?

google-apps-script - 将数据写入谷歌应用程序脚本中的多个非连续单元格

javascript - 在 FolderIterator 和 FileIterator 上循环 - Google Apps 脚本