Сбор данных из нескольких таблиц в одну таблицу - PullRequest
0 голосов
/ 15 декабря 2018

У меня 184 контрольных листа в одной папке.Я хочу сослаться на одну ячейку на каждом из этих листов и вернуть их обратно в одну основную электронную таблицу.

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

function getdata() {


 var files = DriveApp.getFolderById("1gbA2JI1DYNku7SQPaCq1Qk27hnbimPag").getFiles()
while (files.hasNext()) {
  var file = files.next();
  var shoot = SpreadsheetApp.openById(file.getId());

  var sourcesheet = SpreadsheetApp.getActive().getSheetByName("Jan");
  var sourcerange = sourcesheet.getRange('A3');
  var sourcevalues = sourcerange.getValues();

var destsheet = shoot.getSheetByName('Front Sheet'); 
var destrange = destsheet.getRange('B5'); 
destrange.setValues(sourcevalues);         
 }


}

1 Ответ

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

Ваш пример кода не соответствует вашему объяснению, но я думаю, что понял основную идею, поэтому я сам составил некоторые необходимые детали.Надеюсь это поможет.Я включил имена файлов, идентификаторы и значения «A3».Вы можете изменить по мере необходимости.

function getdata(month) {
  var monthA=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
  var date=new Date();
  var mss=SpreadsheetApp.getActive();
  var ms=mss.getSheetByName("Master Sheet");
  var vObj={name:[],id:[],value:[]};
  var files = DriveApp.getFolderById("1gbA2JI1DYNku7SQPaCq1Qk27hnbimPag").getFilesByType(MimeType.GOOGLE_SHEETS);
  while (files.hasNext()) {
    var file = files.next();
    var fid=file.getId();
    var ss = SpreadsheetApp.openById(fid);
    var sh = ss.getSheetByName(monthA[date.getMonth()]);
    var rg = sh.getRange('A3');
    vObj.name.push(file.getName());
    vObj.id.push(fid);
    vObj.value.push(rg.getValue());
    vObj['month']=monthA[date.getMonth()];
  }
  vObj.id.splice(0,0,'ids');
  ms.appendRow(vObj.id);
  vObj.name.splice(0,0,vObj.month);
  ms.appendRow(vObj.name); 
  vObj.value.splice(0,0,'values');
  ms.appendRow(vObj.value)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...