Google apps script 将多个电子表格中的数据收集到一个电子表格中

Google apps script 将多个电子表格中的数据收集到一个电子表格中,google-apps-script,google-sheets,collections,Google Apps Script,Google Sheets,Collections,我在一个文件夹中有184张审计表。我想引用这些表格中的一个单元格,并将它们返回到一个主电子表格中 我有一个相反的代码,它向文件夹中的每个工作表发送一个值,并将其更改为我想要的值。所以本质上我想做与下面脚本相反的事情: function getdata() { var files = DriveApp.getFolderById("1gbA2JI1DYNku7SQPaCq1Qk27hnbimPag").getFiles() while (files.hasNext()) { var fi

我在一个文件夹中有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);         
 }


}

您的示例代码似乎与您的解释不匹配,但我认为我已经掌握了基本的想法,因此我自己编写了一些所需的详细信息。我包括了文件名、ID和“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)
}