如何从一个包含n个电子表格的文件夹中提取数据到一个电子表格?

时间:2018-08-13 19:53:29

标签: google-apps-script google-sheets

我对以下代码有疑问。

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

    var sourceSheet = shoot.getSheets()[0];
    var sourceRange = sourceSheet.getRange("C2:C");
    var sourceValues = sourceRange.getValues();

    var sourceRange2 = sourceSheet.getRange("D2:D");
    var sourceValues2 = sourceRange2.getValues();

    var destSheet = SpreadsheetApp.getActive().getSheets()[0];
    var destRange = destSheet.getRange("D2:D");
    destRange.setValues(sourceValues);

    var destRange2 = destSheet.getRange("E2:E");
    destRange2.setValues(sourceValues2);
  }
}

它的作用是仅从一个电子表格中获取数据,而不是从多个电子表格中获取数据,我需要帮助将所有工作表的数据带给我而不覆盖数据

1 个答案:

答案 0 :(得分:0)

好吧,最终我能够解决方法getLastRow遇到的这个小问题,下面将解决的代码留给我,希望有一天能有所帮助。

  function getData() {
   var files = DriveApp.getFolderById("1mHuYqG2aU9EFj8LE6T0DjzvZC7UK1vSj").getFiles()
   while (files.hasNext()) {
   var file = files.next();
   var bring = SpreadsheetApp.openById(file.getId());


  var sourceSheet = bring.getSheetByName("");


  var n = sourceSheet.getMaxRows();
  var srceRanSprint = sourceSheet.getRange(8, 2, n);
  var srceValSprint = srceRanSprint.getValues();

  var sourceRange2 = sourceSheet.getRange(2, 4, n);
  var sourceValues2 = sourceRange2.getValues();


  var destSheet = SpreadsheetApp.openById("").getSheets()[0];
  var lastRow = destSheet.getLastRow() + 1;


  var destRange = destSheet.getRange(lastRow, 4, n).setValues(sourceValues);

  var destRange2 = destSheet.getRange(lastRow, 5, n).setValues(sourceValues2);


}

}