将 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);
}
}
}
}
我有一个包含多个工作表的 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);
}
}
}
}