пятница, 21 августа 2020 г.

Google Sheet. App Script. Чтение и запись в диапазоны и ячейки

 

Google Sheet. App Script. Чтение и запись в диапазоны и ячейки


Создадим пользовательскую функцию rangeReadWrite().


function rangeReadWrite() {

}



Объект SpreadsheetApp.Создание


Для работы с таблицами Google создадим объект SpreadsheetApp:


var app = SpreadsheetApp;




Объект ActiveSpreadsheet.Создание


создадим объект ActiveSpreadsheet: - активная таблица Google


var app = SpreadsheetApp;


Объект ActiveSheet.Создание


создадим объект ActiveSheet: - активный лист таблицы Google


var activeSheet = ss.getActiveSheet();


getRange.Запись в диапазон ячеек


метод getRange, позволяет работать (считывать и записывать информацию), как с одной ячейкой, так и с диапазоном ячеек.


запишем строку "Первый результат!" в ячейку с адресом "D2" 


activeSheet.getRange("D2").setValue("Первый результат!");


выполним нашу функцию, получим:



Адресацию к ячейке "D2", можно сделать другим способом (по номеру строки и столбца):


activeSheet.getRange(2,4).setValue("Первый результат!");


результат тот же


запишем в диапазон "D2:E3"


activeSheet.getRange("D2:E3").setValue("Первый результат!");


выполним нашу функцию, получим:



теперь обратимся к диапазону другим способом


activeSheet.getRange(2,4,2,2).setValue("Первый результат!");


выполним нашу функцию, получим:




можно ещ так работать с  диапазоном 


activeSheet.getRange(2,2,3).setValue("Первый результат!");


выполним нашу функцию, получим:





Теперь считаем данные из ячейки с адресом "D2"  в переменную str


str = activeSheet.getRange("D2").getValue();


 и запишем его в  "E2"


activeSheet.getRange("E2").setValue(str);


выполним нашу функцию, получим:









Книга. Google Apps Script – Сценарии приложений Google. Использование.


https://docs.google.com/document/d/1fQvUBoU1edOVSUtZPIO0fYJ3fmQqiuAiwNtVfUyuc6M/edit?usp=sharing


6 комментариев:

  1. Привет!

    Спасибо.

    Метод получает диапазон ячеек.
    Как обратиться к листу, на котором этот диапазон?

    В Excel для этого использую метод Parent.

    ОтветитьУдалить
  2. Добрый день! Если я правильно понял, то Вас интересует класс Class Spreadsheet https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet?hl=ru. В вышеуказанном примере activeSheet является листом.

    ОтветитьУдалить
  3. Здравствуйте, не могу понять почему выдаёт ошибку такой код
    var sheetForma = ss.getSheetByName('Ввод расходов >');
    var countroww = sheetForma.getLastRow();
    var range = sheetForma.getRange('A4:F' & countroww);

    ошибка range not found

    ОтветитьУдалить
  4. Добрый день! Проверьте наименование 'Ввод расходов >', возможно у вас должно быть 'Ввод расходов'

    ОтветитьУдалить
    Ответы
    1. var range = sheetForma.getRange('A4:F' & countroww); пришлось переписать (4,1 , countroww-4, 5) - тогда заработало

      Удалить
  5. Здравствуйте. При работе программы с гиперссылками в самом конце, когда программа уже прошлась по всем документам и проработала их, появляется ошибка - нет доступа к документу, но к какому документу, если весь код уже пройден? Может быть что-то подскажете...

    ОтветитьУдалить