将数据从多个不同的 Google 工作簿导入到一个主工作簿

Import Data from Multiple Different Google Workbooks to One Master Workbook

我正在寻找一种将数据从 57 Google Sheets 文件/工作簿导入到一个母版 Google Sheet 的方法。例如,我有 57 位老师 - 每个老师都有自己的 Google Sheet 文档。我在观察收集数据时使用他们的文档。我需要一种方法来获取我从他们的每个单独文件中收集的数据,将其放入我的主文件中并将其与我的 sheet 中的名称匹配,而不必为每个文件使用 IMPORTRANGE 函数。这可以通过脚本实现吗,或者有更简单的方法吗?

尝试(更改列表中的 ID)

const ids = [
  '1T7ixa-JGLgh8oZ19mWUy3Oo4UzbivflUlwL9zLGVkgg',
  '16uEeVNEBzBbGVTgKa98Ob7Wcy5mof9n6mU-yKIZ0fKM',
  '1d3ZHi1H0uUMU7jYsrwses66ULkmM4bFHyDn8RFtAlkk'
]
function myFunction() {
  let result = []
  ids.forEach((id, i) => {
    let [headers, ...data] = SpreadsheetApp.openById(id).getSheets()[0].getDataRange().getValues()
    if (i == 0) { result.push(headers.flat()) }
    data.forEach(r => result.push(r))
  })
  var master = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('myMasterSheet') 
  master.clearContents()
  master.getRange(1, 1, result.length, result[0].length).setValues(result)
}

如有必要,您可以使用 sheet 来存储 ID