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

时间:2017-07-25 15:13:02

标签: google-apps-script google-sheets google-sheets-api

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

如果它可以适用于多个工作簿,则可获得奖励积分。如果我可以选择要连接的工作表,也是最好的。

我曾尝试为此编写脚本,但我正在努力。

1 个答案:

答案 0 :(得分:1)

所有表格的母亲

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

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);
      }
    }
  }
}