【发布时间】:2021-01-03 01:17:05
【问题描述】:
我在 Google Drive 的一个文件夹中有 100 个 Google Sheet 文件。每个 Google 工作表文件有 10 个工作表 (A,B,C,D,E,F,G,H,I,J)。我想将所有 100 个 Google 表格文件附加到一个 Google 表格中,并从所有 100 个文件的“B”表格中附加数据。但是名称为“B”的床单不会总是排在第二位。所有工作表都有相同的列。我有以下代码,仅当这些工作表在每张工作表中的顺序中排在第二位时,才从多个文件中附加工作表。 1)它必须选择工作表名称而不是第二张工作表 2)此代码甚至包括工作表中的空白行(如果有)。它必须跳过工作表中的空白行。
function myFunction() {
var myFolder = DriveApp.getFolderById("1ZtxfMNDn3uFhCcdcp5unfmTwUIJ_3fZK");
var spreadSheets = myFolder.getFilesByType("application/vnd.google-apps.spreadsheet");
var master_files = DriveApp.getFilesByName("MergedNew")
if (master_files.hasNext()){
var master_file=master_files.next();
var newSpreadSheet = SpreadsheetApp.openById(master_file.getId());
}
else {
var newSpreadSheet = SpreadsheetApp.create("MergedNew");
newSpreadSheet.getSheets()[0].setName('B data');
}
var bSheet = newSpreadSheet.getSheetByName('B data');
while(spreadSheets.hasNext())
{
var sheet = spreadSheets.next();
var spreadSheet = SpreadsheetApp.openById(sheet.getId());
var sh = spreadSheet.getSheets()[1];
var data = sh.getRange(2,1,sh.getMaxRows(),sh.getMaxColumns()).getValues();
if (bSheet.getLastRow() == 0){
var headers = sh.getRange(1,1,1,sh.getMaxColumns()).getValues();
bSheet.getRange(1,1,1,sh.getMaxColumns()).setValues(headers);
}
bSheet.getRange(bSheet.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}
}
【问题讨论】:
标签: google-apps-script google-sheets