从多个Google电子表格中导入范围

时间:2016-08-12 18:48:39

标签: google-sheets spreadsheet

我知道如何将数据从一张电子表格导入另一张电子表格:

=IMPORTRANGE(spreadsheet_key, range_string)

来源:https://support.google.com/docs/answer/3093340?hl=en&ref_topic=3105411

但是如何将MULTIPLE电子表格导入一个“主电子表格”?

这样的事情:

=IMPORTRANGE(spreadsheet_key, range_string),IMPORTRANGE(spreadsheet_key, range_string),IMPORTRANGE(spreadsheet_key, range_string)

所有电子表格都具有完全相同的结构。

我希望同一张表中的所有数据都在同一列中。

我希望将所有放在一个文件夹中的电子表格自动导入“主传播页”。

1 个答案:

答案 0 :(得分:2)

您可以连接值和范围 在英语区域设置中,您使用,连接列,使用;连接行,并将它们放在curles {}中。

尝试以下方法:

={IMPORTRANGE(spreadsheet_key1, range_string1);
  IMPORTRANGE(spreadsheet_key2, range_string2);
  IMPORTRANGE(spreadsheet_key3, range_string3)}

功能

自动导入文件夹中所有工作表的粗略方法。

function import() {
  var spreadsheets = DriveApp.
    getFolderById("YOURFOLDERID").
    getFilesByType(MimeType.GOOGLE_SHEETS);

  var data = [];
  while (spreadsheets.hasNext()) {
    var currentSpreadsheet = SpreadsheetApp.openById(spreadsheets.next().getId());
    data = data.concat(currentSpreadsheet.   
                         getSheetByName("YOURSTANDARDSHEETNAME").
                         getRange("YOURSTANDARDDATARANGE").
                         getValues());
  }

  SpreadsheetApp.
    getActiveSheet().
    getRange(1, 1, data.length, data[0].length).
    setValues(data);
}

这不会处理变小的范围,因此不会覆盖旧数据或任何花哨的东西 它还需要手动触发。