я уже все давно закрыл а в анализаторе запросов идут какие то запросы!
2020-10-15_22-55-51.png
@Vennix Читаем данные столбца
В таблице : Инструменты-редактор скриптов
var ss = SpreadsheetApp.getActiveSpreadsheet(), // spreadsheet
s = ss.getActiveSheet(); // sheet
function getData(){
var result = [],
range = 'B:B', // диапазон ячеек, который хотим выгружать
values = s.getRange(range).getValues(),
last_row = parseInt(s.getLastRow());
for (var i = 1; i < last_row; i++) {
result.push(values[i]);
}
return result;
}
function doGet() {
var data = getData();
if(!data) {
data = '';
}
return ContentService.createTextOutput(
JSON.stringify({'result': data})).setMimeType(ContentService.MimeType.JSON);
}
Назвать, сохранить и опубликовать как веб-приложение
Скопировать URL в конце и вставить в Get запрос в БАСе
Благодарю. Ячейки читает. Единственная проблема, что читает только выбранный изначально диапазон ячеек, при создании скрипта. После измения, сохранения и публикации, в скрипте сохраняется новый диапазон, но почему-то при запросах работает только старый. В чем может быть дело?
@AndreyKa @Vennix Чтобы после редактирования скрипта изменения применились надо при публикации указать, что "новая" версия. Нужный диапазон и любые другие данные данные можно передавать в самом запросе
Доки
https://developers.google.com/apps-script/guides/web
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app
@Vennix это запись по тому-же принципу
function doGet(e)
{
var sheet = SpreadsheetApp.openById("код из ссылки на таблицу");
var n=sheet.getRange("A1").getValue()+2;
var d = new Date();
sheet.getRange("A"+n).setValue(d);
sheet.getRange("B"+n).setValue(e.parameter.p1);
sheet.getRange("C"+n).setValue(e.parameter.p2);
sheet.getRange("D"+n).setValue(e.parameter.p3);
sheet.getRange("E"+n).setValue(e.parameter.p4);
sheet.getRange("F"+n).setValue(e.parameter.p5);
sheet.getRange("G"+n).setValue(e.parameter.p6);
sheet.getRange("H"+n).setValue(e.parameter.p7);
sheet.getRange("A1").setValue(n-1);
}
В А1 записываем 0 и запись начнется со второй строки.
К ссылке после публикации добавляем ?p1=[[переменная1]]&p2=[[переменная2]]&p3=&p4=&p5=&p6=&p7=
В значениях для записи не должно быть пробелов (убираю так: [[SAVED_TEXT]].replace(/\s+/g,''))
@Vennix это перезапись:
function doGet(e)
{
var sheet = SpreadsheetApp.openById("код из ссылки на таблицу");
sheet.getRange("K1").setValue(e.parameter.p1);
var n=sheet.getRange("K1").getValue();
var d = new Date();
sheet.getRange("A"+n).setValue(d);
sheet.getRange("B"+n).setValue(e.parameter.p2);
sheet.getRange("C"+n).setValue(e.parameter.p3);
sheet.getRange("D"+n).setValue(e.parameter.p4);
sheet.getRange("E"+n).setValue(e.parameter.p5);
sheet.getRange("F"+n).setValue(e.parameter.p6);
sheet.getRange("G"+n).setValue(e.parameter.p7);
sheet.getRange("H"+n).setValue(e.parameter.p8);
}
В K1 записываю номер строки которую перезаписываю
@Alstellar А что не получается?
запрос такого вида должен получиться: https://script.google.com/macros/s/AKfxQ-hRenQAg-m3cwAhFXjC_EgZJghmznefwts/exec?p1=34&p2=12345678&p3=$999
@AndreyKa said in Работа с гугл таблицами через бас:
@Alstellar А что не получается?
запрос такого вида должен получиться: https://script.google.com/macros/s/AKfxQ-hRenQAg-m3cwAhFXjC_EgZJghmznefwts/exec?p1=34&p2=12345678&p3=$999
Да, только знак доллара нужно будет экранировать - гуглите метод encodeURIComponent()