@Fox О спасибо теперь понятно как оно работает
А в ручном управлении есть какие-то быстрые клавиши.Что бы управлять браузером удобнее было. Ато на определённую вкладку часто приходится нажимать.
Работа с гугл таблицами через бас
-
Всем привет. Необходимо через бас читать и записывать значения в определенные ячейки гугл таблицы. Вроде есть какие то npm модули соотвествующие, но у самого так и не получилось заставить это все работать. Буду очень благодарен если кто то сможет привести пример простого проекта, как это все должно работать на самом деле.
-
@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()