将 Google 个电子表格中的工作表连接到新工作表

Concatenate Worksheets in Google Spreadsheet to new worksheet

我有一个包含多个工作表的 Google 电子表格。大多数工作表都有相同的列,但有些工作表有额外的列。我想将所有工作表连接到同一个工作簿中的一个新创建的工作表中。列中的差异应包含空白值。

如果它可以适用于多个工作簿,则加分。如果我可以 select 连接工作表也更可取。

我已经尝试为此编写一个脚本,但我很挣扎。

所有床单之母

您可能可以获取驱动器中的所有电子表格,并为所有这些电子表格执行此操作。但我没有这样做。这允许您通过将它们添加到数组 includedSheet 来包含要连接的工作表。

function concatAllSheets()
{
  var includedSheet=['Sheet1','Sheet2','Sheet3'];
  var ss=SpreadsheetApp.getActive();
  var allSheets=ss.getSheets();
  var sheetName='motherofallsheets-' + Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "yyyyMMddHHmm")
  var mother=ss.insertSheet(sheetName);
  for(var i=0;i<allSheets.length;i++)
  {
    var sht=allSheets[i];
    if(includedSheet.indexOf(sht.getName())>-1)
    {
      var rng=sht.getDataRange();
      var rngA=rng.getValues();
      for(var j=0;j<rngA.length;j++)
      {
        var row=rngA[j];
        mother.appendRow(row);
      }
    }
  }
}