gpt4 book ai didi

javascript - 复制谷歌驱动器文件夹中每个工作簿中的所有工作表

转载 作者:行者123 更新时间:2023-11-30 13:55:03 24 4
gpt4 key购买 nike

我想要一个 google 脚本,它将遍历我的 google 驱动器文件夹中的每个工作簿(电子表格),然后将其中的每个工作表复制到我自己的一个工作表中。我已经有一个脚本,但它设置为只复制第一张纸,我们可以让它循环复制电子表格中的所有纸

我尝试更改索引,但它只会拉出一张纸

function getDataToMaster() {
var folder = DriveApp.getFolderById("******************"); //Define id of folder
var contents = folder.getFiles();
var file;
var data;
var sheetMaster = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0]; //first sheet of the file, change by getSheetByName("NAME") if you want
while(contents.hasNext()){
file = contents.next();
if (file.getMimeType() == "application/vnd.google-apps.spreadsheet") {
var sheet = SpreadsheetApp.openById(file.getId()).getSheets()[0];//first sheet of the file, change by getSheetByName("NAME") if you want
var startRow = 1;
var data = sheet.getDataRange().getValues();
var colToCheck = 7;
for(var j = 0; j < data.length;j++){
if(data[j][colToCheck-1] != "copied"){
sheetMaster.appendRow(data[j]);
sheet.getRange((j+1), colToCheck).setValue("copied");
SpreadsheetApp.flush();
}
}
}
}
}

最佳答案

Spreadsheet.getSheets() 返回可以迭代的表格数组。

建议:当你知道你将遍历数组中的每个元素时(即你不想通过 breakreturn 提前退出以终止循环) ,然后尝试使用 Array.prototype.forEach,因为它减少了您需要设置的变量数量。以下是我将如何使用 forEach 两次重写您的 getDataToMaster 函数:

function getDataToMaster() { 
var folder = DriveApp.getFolderById("******************");
var contents = folder.getFiles();
var sheetMaster = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0];
while (contents.hasNext()) {
var file = contents.next();
if (file.getMimeType() !== "application/vnd.google-apps.spreadsheet") {
continue;
}
SpreadsheetApp.openById(file.getId()).getSheets()
.forEach(function (sheet) {
var colToCheck = 7;
sheet.getDataRange().getValues()
.forEach(function (row, index) {
if (row[colToCheck - 1] != "copied") {
sheetMaster.appendRow(row);
sheet.getRange(index + 1, colToCheck).setValue("copied");
SpreadsheetApp.flush();
}
});
});
}
}

关于javascript - 复制谷歌驱动器文件夹中每个工作簿中的所有工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57459766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com