Как создать скрипт для объединения нескольких листов в другой? - PullRequest
0 голосов
/ 21 декабря 2018

Извините за мой английский, это не моя сила!

Я работаю в НПО, которая проводит тренинги.

У нас есть Google лист, который собирает данные об участниках по дням обучения по одному в разных таблицах.

Итак, мой годовой документ состоит из 30 электронных таблиц.Я хотел бы создать еще одну электронную таблицу, которая объединит все данные из других вкладок, чтобы: - быстро увидеть, кто еще не оплатил свой счет - рассчитать общую сумму

я знаю, что могуСделайте это с помощью функции фильтра, но для многих электронных таблиц это отнимает много времени, и если я добавлю тренировку, мне придется изменить формулу.Более того, я буду вынужден делать это каждый год.

Поэтому я хотел бы создать кнопку для импорта всех данных в новую электронную таблицу.

Вы найдете пример листаздесь только 2 таблицы: https://docs.google.com/spreadsheets/d/1-RxzUGJFXnU3_mJ3Qj0MCTpwPTlnmgIT439AchyrRrE/edit?usp=sharing

Я надеюсь, что вы сможете мне помочь !!

Спасибо и счастливого нового года: D

Ответы [ 2 ]

0 голосов
/ 07 января 2019

Очень жаль, я не получил никакого уведомления о вашем ответе, потому что это было редактирование, и когда я пришел посмотреть, написали ли вы что-то, я посмотрел внизу сайта.: /

Прежде всего, с новым годом и еще раз спасибо за вашу помощь !!

Вот точность, которую вы просили:

1 ° Действительно, я бы хотелобъединить все 28 листов файла с именем «CopieDdeFCCE» с новым листом того же файла.Чтобы быть более точным, я дам вам ссылку на точное местоположение документа с некоторыми примерами листов: ссылка .

2 ° Во-вторых, я создам кнопку, чтобы обновить вседанные легко.Но я думаю, что знаю, как это сделать, поэтому забудьте этот вопрос;)

3 ° В документе, который я вложил, мы согласны с тем, что "id": 1KC6kHcgtLZ93S4-r4wOwHFOG6Rq3mesGRKv26Ttnm9E ??

Еще раз спасибо за ваше время!

0 голосов
/ 21 декабря 2018

Объединение листов в другом листе в той же электронной таблице.

Вам потребуется идентификатор для электронной таблицы с именем «CopiDdeFCCE», для другого параметра по умолчанию будет установлено значение «CopieDdeFCCE».

function mergeSpreadsheet(ssid,shname){
  var shname=shname || 'CopieDdeFCCE';
  var ss=SpreadsheetApp.openById(ssid);//id of spreadsheet named 'CopieDdeFCCE' in your case
  var sh=ss.getSheetByName(shname);//sheetname of sheet where other sheets are merged into again in your case its named 'CopieDdeFCCE'
  if(!sht){ss.insertSheet(shname);}
  var allshts=ss.getSheets();
  for(var i=0;i<allshts.length;i++){
    if(allshts[i].getName()!=shname){//do this for all sheets except shname
      var shi=allshts[i];
      var rg=shi.getDataRange();
      var vA=rg.getValues();
      shi.getRange(sh.getLastRow() + 1, 1,shi.getLastRow(),shi.getLastColumn()).setValues(vA);
    }
  }
}

Просто длябыть ясным.

  • Таблица, которую Google называет электронной таблицей, - это файл, который содержит все вкладки (то есть листы).
  • В своем первом комментарии вы сказали следующее: Я хотел бы объединить все 28 листов файла с именем "CopieDdeFCCE" с новым листом того же файла .
  • Но теперь в своем вопросе вы говорите: я хотел бы создать кнопку для импорта всех данных в новую электронную таблицу.
  • Вы указали в своем последнем комментарии, что ваша команда выглядит следующим образом: mergeSpreadsheet ("1KC6kHcgtLZ93S4-r4wOwHFOG6Rq3mesGRKv26Ttnm9E", "CopieDdeFFCE")
  • Но, очевидно, это не пример примера, а примернет листа с таким именем.

Так что мой вопрос: что именно вы хотите?

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