Цель:
Используя Google Forms, я отправляю данные в электронную таблицу. Я использую Apps Script в электронной таблице, чтобы вызвать «при отправке формы», чтобы поместить данные в таблицу в документе Google.
Первый столбец в таблице Документов Google содержит идентификатор строки относительно идентификатора строки в Листе Google.
Проблема:
- Для целей моего приложения некоторые формы требуют, чтобы ответы редактировались / обновлялись.
- Мой сценарий в настоящее время только добавляет новые строки в таблицу Документов Google (включая изменения, которые я хочу редактировать только соответствующую строку, но не отправлять в новую строку). Очевидно, что строка Google Sheet обновляется автоматически без проблем.
Мой ход мыслей для создания решения:
- Я добавил столбец в таблицу Документов Google, содержащий уникальный идентификатор (идентификатор строки таблицы)
- Вопрос: Когда вы внутри и редактируете форму Google (которая уже была отправлена ранее), активирует ли это
.activeRow()
в Google Sheet? Если это так, я мог бы проверить, если это существующая строка.
- Вопрос: Как выполнить поиск в столбце таблицы Google Doc, содержащей идентификаторы? Как только я определю строку, как я могу ее отредактировать? Это как-то связано с
.getElement();
? Различаются ли таблицы в Документах Google по-разному с таблицами в Google Sheets?
Как вы думаете, я на правильном пути? Есть ли гораздо более простое решение, которое я пропускаю?
// Grab the Table
var body = DocumentApp.openById('theid').getBody(),
searchElement = body.findElement(DocumentApp.ElementType.TABLE),
element = searchElement.getElement(),
table = element.asTable();
// Get the last row ID
var range = SpreadsheetApp.getActiveSheet().getLastRow();
// Insert the Row
var cells = [range, theDate, nameWelcome, interest, value, comment, offer];
var addRow = table.appendTableRow();
cells.forEach(function(e, i){
addRow.insertTableCell(i, e);
});