[英]GAS Scan all spreadsheets in folder and change a specific cell value and sheet name?
function getAllSheetsInFolder () { var folder = DriveApp.getFolderById("ID"); var contents = folder.getFiles(); Logger.log("file length: " + contents.length); var file; var data; var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Class Data") sheet.clearContents(); var numOfFiles = contents.length; for (var i = 0; i < numOfFiles; i++) { file = contents[i]; Logger.log("count: " + i); //Reset to null on every iteration var onecell = null; var theRange = null; var theFileType = file.getFileType(); Logger.log("theFileType: " + theFileType); if (theFileType==DocsList.FileType.SPREADSHEET) { var sheet = SpreadsheetApp.open(file).getSheets()[0]; var cell = sheet.getRange(2,7); cell.setValue('RTI') }; } } }
我希望编写一种GAS,它可以扫描文件夹中的所有电子表格并更改每个电子表格中单元格(G2)的值。 是否可以将其设置为扫描文件夹和子文件夹中的所有电子表格? 或者只是特定文件夹中的每个电子表格。
我还希望更改每个电子表格中第4张纸的名称。 我只是想看看你们是否认为在我开始弄乱某些代码之前这是有可能的。
这里有一些代码获得对文件夹的引用,并循环遍历该文件夹以查找电子表格文件。
function getAllSheetsInFolder () {
var folder = DriveApp.getFolderById("Your Folder ID");
Logger.log('folder: ' + folder);
var sheetFiles = folder.getFilesByType("application/vnd.google-apps.spreadsheet");
Logger.log("sheetFiles.hasNext(): " + sheetFiles.hasNext());
while (sheetFiles.hasNext()) {
var file = sheetFiles.next();
var theFileType = file.getMimeType();
Logger.log("theFileType: " + theFileType);
var ssID = file.getId();
Logger.log('ssID: ' + ssID);
var thisSS = SpreadsheetApp.openById(ssID);
var sheet = thisSS.getSheets()[0];
var cell = sheet.getRange(2,7);
cell.setValue('Test Cell Set')
};
};
此代码结合使用DriveApp
来获取特定文件夹中的电子表格文件列表,然后使用SpreadsheetApp
实际打开电子表格文件并将值写入单元格。
现在不推荐使用DocsList
类。 我的原始代码使用的是DocsList
而不是DriveApp
,但是它们有很大的不同。 DriveApp
可以获取文件夹,文件列表,以及设置和获取其他文件信息,但是DriveApp
无法打开电子表格文件。 您必须使用SpreadsheetApp
打开电子表格文件。 因此,代码必须首先获取文件夹,然后获取文件夹中所有电子表格的列表以及每个电子表格的ID。 然后按ID打开电子表格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.