#google-apps-script #google-sheets
#google-apps-script #google-sheets
Вопрос:
Я пытаюсь использовать приложения Google Script для добавления данных в таблицу Google с нулевым значением столбца «оценить», например:
---- ------- ------
| id | name | rate |
---- ------- ------
| 1 | Item1 | |
---- ------- ------
| 2 | Item2 | |
---- ------- ------
| 3 | Item3 | |
---- ------- ------
Как изменить приведенный ниже код, чтобы он работал нормально, например, id = 1 amp; rate = good для добавления значения столбца rate с помощью ссылки по идентификатору вызова 1,2,3 или любого другого, и работать над добавлением значения, например
---- ------- ------
| id | name | rate |
---- ------- ------
| 1 | Item1 | good |
---- ------- ------
| 2 | Item2 | |
---- ------- ------
| 3 | Item3 | |
---- ------- ------
function doGet(e) {
var id = e.parameter.id || 1;
var rate = e.parameter.rate || "";
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/10S8Igzt1tpqUBgJHVKpny-2s6G3Y3-vFsLMvlZVqpkc/edit#gid=810612111");
var sheet = ss.getSheetByName("list_film");
return insertData(sheet, id,rate);
}
function insertData(sheet, id,rate){
var rows = sheet.getDataRange().getDisplayValues().filter(([a]) => a == id);
var data = rows.appendRow([rate]);
return ContentService.createTextOutput(data).setMimeType(ContentService.MimeType.JSON);
}
``
Ответ №1:
Я считаю, что ваша цель заключается в следующем.
- Когда он обращается к
https://script.google.com/macros/s/###/exec?id=1amp;rate=good
, вы хотите поместить значениеgood
в ту же строку идентификатора столбца «C».
В этом случае я хотел бы предложить изменить функцию insertData
следующим образом.
Модифицированный скрипт:
function insertData(sheet, id, rate){
var ranges = sheet.getDataRange().getDisplayValues().reduce((ar, [a], i) => {
if (a == id) ar.push("C" (i 1));
return ar;
}, []);
sheet.getRangeList(ranges).setValue(rate);
return ContentService.createTextOutput("Done.").setMimeType(ContentService.MimeType.JSON);
}
- В этой модификации создается список диапазонов, и значение вводится с помощью списка диапазонов. Таким образом, когда существуют одинаковые идентификаторы, значение
rate
присваивается каждой строке столбца «C». - Если вы хотите поместить значения в другой столбец, пожалуйста, измените приведенный выше сценарий.
Примечание:
- Когда вы изменили сценарий веб-приложений, пожалуйста, повторно разверните веб-приложения как новую версию. Таким образом, последний сценарий отражается в веб-приложениях. Пожалуйста, будьте осторожны с этим.