Как «За петлей» через таблицу документов Google - PullRequest
0 голосов
/ 05 мая 2018

У меня есть таблица в документе Google (не лист). Первый столбец содержит идентификационный номер, который совпадает с его относительным идентификатором в Листе Google, с которого были отправлены Данные.

//This is what the table looks like
//[id][name][favourite cheese]
//[3 ][bob ][chedder]
//[4 ][jane][old english]

Мне нужно

  1. Перебрать каждую строку в таблице Google DOCUMENT.
  2. Определить, содержит ли ячейка в первом столбце «текст» (идентично идентификационному номеру)
  3. Если он содержит текст, обновите строку новыми данными

Вот мой текущий код:

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

Этот фрагмент кода используется для захвата таблицы, поскольку вы не можете назвать таблицы в Документах Google.

Я так удивлен, что не могу найти больше информации. Я прилагаю все усилия, чтобы использовал документацию и у меня было ощущение, что я буду использовать 'For Loop' для поиска в каждой строке, но понадобится ли мне .getElement (row) для циклического прохождения? Могу ли я использовать .findText () или это подняло бы каждую часть таблицы, которая содержит текст. Может быть, я мог бы каким-то образом зациклить .getElement (row) и .findText () в первом столбце каждой строки?

Я знаю, что зацикливание - это довольно базовая концепция Javascript, меня просто смущает способ работы с Документами Google.

1 Ответ

0 голосов
/ 05 мая 2018

Вы правы, вы можете циклически проходить по строкам, используя цикл Javascript for.

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

Когда у вас есть строка, вы можете работать с ней, как вам нравится, например, получать текст из первой ячейки: row.getCell(0).getText()

Сравнение строк в JavaScript может быть простым ===, и затем вы можете редактировать текст целевой ячейки (в данном примере, второй столбец):

if (row.getCell(0).getText() === id) {
  row.getCell(1).setText('foo');
}
...