Получение конкретных данных из множества разных листов с помощью скрипта в Google Spreadsheet - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть довольно массивная рабочая тетрадь, которая содержит чуть более 300 листов.Я пытаюсь взять 2 ячейки с каждого листа и переместить эти данные в основной лист.Я создам лист, который похож на мою основную покупку меньше.Вот тестовый лист

https://docs.google.com/spreadsheets/d/19DoIyBVFLCt7TU5PEZCMcFMCbRcXhKgNc3OBGcUPixk/edit?usp=sharing

Сейчас у меня есть скрипт, который делает это, но он совершенно неэффективен, но я новичок в этом.Я должен сделать этот набор кода ниже для каждого листа, который у меня есть.Таким образом, код заканчивается длиной более 2000 строк ...

  sheet.insertRowAfter(49);
  var Date = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("SheetName").getRange("J16").getValues();
  DateCell.setValue(Date);
  NameCell.setValue("SheetName");

Я ищу скрипт, который будет делать то, что у меня есть, но в каком-то цикле.То, как у меня это просто неправильно.

1 Ответ

0 голосов
/ 13 февраля 2019

Вы хотите использовать for [1] петли или forEach() [2] на Spreadsheet.getSheets () * метод 1012 *.

Чтобы это работало Мастер должен быть первым листом в электронной таблице.

 var ss = SpreadsheetApp.getActiveSpreadsheet(); //Gets the current spreadsheet.
var sheets = ss.getSheets(); //Gets a list of all sheets in the current spreadsheet

//Get master for use later by removing the first sheet.
var master = sheets.shift(); 

sheets.forEach(function (sheet){
  //Here we can perform a task on each sheet in our spreadsheet...
  var name = sheet.getRange("A1").getValue(); //Get name from sheet
  var date = sheet.getRange("C7").getValue(); //Get date from sheet

  master.appendRow([name, date]); //append to master sheet
}

Это позволит вам просмотреть все листы в файле электронной таблицы и выполнить одну и ту же задачу в каждом из них!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...