如何通过 Google 文档表“For 循环”

Bja*_*aeg 3 javascript google-docs google-apps-script

我在 Google 文档(不是工作表)中有一个表格。第一列包含一个 ID 号,该 ID 号与提交数据的 Google 表格中的相对 ID 相匹配。

//This is what the table looks like
//[id][name][favourite cheese]
//[3 ][bob ][chedder]
//[4 ][jane][old english]
Run Code Online (Sandbox Code Playgroud)

我需要

  1. 循环遍历 Google DOCUMENT 表中的每一行。
  2. 确定第一列中的单元格是否包含“文本”(与 ID 号相同)
  3. 如果它包含文本,则使用新数据更新该行

这是我当前的代码:

// Grab the Table
var body = DocumentApp.openById('theId').getBody(),
  searchElement = body.findElement(DocumentApp.ElementType.TABLE),
  element = searchElement.getElement(),
  table = element.asTable();
Run Code Online (Sandbox Code Playgroud)

这部分代码用于获取表格,因为您无法在 Google 文档中命名表格。

我很惊讶我找不到更多信息。我正在尽最大努力利用文档,并感觉我将使用“For Loop”来搜索每一行,但我需要 .getElement(row) 来循环吗?我可以使用 .findText() 还是会显示包含文本的表的每个部分。也许我可以以某种方式在每行的第一列中循环 .getElement(row) 和 .findText() ?

我知道循环是一个相当基本的 Javascript 概念,只是 Google 文档的处理方式让我感到困惑。

Mat*_*ewG 5

你是对的,你可以使用 Javascript 循环遍历行for

for (var i = 0; i < table.getNumRows(); ++i) {
  var row = table.getRow(i);
  Logger.log(row.getText());
}
Run Code Online (Sandbox Code Playgroud)

获得该行后,您可以按照自己喜欢的方式使用它,例如从第一个单元格获取文本: row.getCell(0).getText()

JavaScript 中的字符串比较可以是简单的===,然后您可以编辑目标单元格的文本(在本例中为第二列):

if (row.getCell(0).getText() === id) {
  row.getCell(1).setText('foo');
}
Run Code Online (Sandbox Code Playgroud)