当前位置: 首页 > 知识库问答 >
问题:

如何使用脚本在工作表中提取Google工作表公式?

糜淇
2023-03-14

我使用脚本将数据从MySQL数据库导入到工作表中。在导入过程中,其他具有重公式的工作表(vlookup、sumifs、filter)会不断重新计算,因此需要花费很长时间。我想在MySQL数据完全导入后,通过脚本插入公式。

为了简化此过程,我想将工作表上的所有公式(这是一个很长的工作表)提取到一个文件中,并将提取的数据格式化为以下方式:示例:从工作表“摘要”中提取数据:

  • 循环检查工作表中的每个单元格

例如:

cell A1 has formula "=SUM(B3:B4)"
cell A2 has formula "=C3+C5-C8"

输出到文件:

var sheet = SpreadsheetApp.getActive().getSheetByName('Summary');
var cell = sheet.getRange("A1");
cell.setFormula("=SUM(B3:B4)");
var cell = sheet.getRange("A2");
cell.setFormula("=C3+C5-C8)");

提前感谢您的建议。

共有1个答案

东郭赞
2023-03-14

您可以尝试将所有公式放入数组,清除范围,进行处理,然后重新插入公式:

var rng = sheet.getRange("A1:B123");
var arr = rng.getFormulas();
rng.clear({contentsOnly: true});

...Do your processing...

rng.setFormulas(arr);
 类似资料:
  • 有人能帮我把脚本布局转换成实际的功能代码吗?我有一般的编码知识,但我不知道正确的语法。 基本上,我需要的是一个脚本,当提交表单条目时,它会在所有工作表/选项卡之间循环。表单包含提交表单的人的姓名(字符串)、开始日期、结束日期,最后是注释字段(字符串)。 我需要脚本来遍历每个工作表的第5行,并查找在第一个表单字段中输入的字符串(提交表单的人的姓名)。如果它找到了该名称,它应该将与该名称对应的列保存到

  • 是否有任何方法,使用脚本或其他方式,来评估谷歌电子表格中的连接公式? 我为Google Finance函数创建了一个连接公式,用于获取每日汇率。这是因为我的日期和货币不断变化;而不是“usdeur”,我有时对获取“usdinr”或“euraud”感兴趣。通过使用连接和一些基本脚本,我能够将下面的公式作为文本粘贴到单元格中。所需的只是执行以下字符串的方法。 据我所知,工作表不像Excel那样具有“E

  • 通过SpreadsheetApp global,使用绑定到电子表格的应用程序脚本来影响工作表非常简单。但是,有一些功能,例如在工作表上获取/设置过滤器,只能从GoogleSheetsRESTAPI访问。 我见过一个例子,它使用应用程序脚本中的UrlFetchApp来调用谷歌工作表应用编程接口,但它的编写方式好像应用程序脚本实际上没有绑定到特定的电子表格。 当我试图从绑定到电子表格的应用程序脚本中调

  • 我一直在寻找一个工作表保护问题的解决方案,我有一个工作表,其中包括从顶部的一些字段将数据写入下面的工作表的自动脚本。我希望用户能够在顶部的字段中提供数据,然后运行脚本添加下面的数据。如果启用了保护,则用于添加数据的脚本对工作表的所有者来说可以正常工作,但对于任何具有编辑权限的用户来说都无法正常工作,因为脚本无法清除将数据写入工作表底部的保护。 https://developers.googlebl

  • 您好,我正在为D制作一张计划表 我正在尝试编写一个脚本,它将自动隐藏PlayerSheet中所有空的“initiative”单元格。我已经成功地编写了这个脚本,但是我希望它在我编辑MainSheet时触发。因为工作表中的所有日期都来自于使用IMPORTRANGE,所以我无法使用on edit触发器,因为PlayerSheet从未被编辑过。 每当我编辑MainSheet时,是否可以让位于Player