GAS 扫描文件夹中的所有 spreadsheet 并更改特定的单元格值和 sheet 名称?

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 来扫描文件夹中的所有传播sheet,并更改每个传播sheet 中单元格 (G2) 的值。可以设置扫描文件夹和子文件夹中的所有spreadsheet吗?或者只是每个 spreadsheet 在一个特定的文件夹中。

我还希望在每个传播sheet 中更改第 4 个 sheet 的名称。在我开始修改一些代码之前,我只是想看看你们是否认为这是可能的。

这里有一些代码可以获取对文件夹的引用,并循环遍历该文件夹以查找电子表格文件。

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 Class 现已弃用。我的原始代码使用 DocsList 而不是 DriveApp,但它们非常不同。 DriveApp可以获取文件夹,文件列表,设置和获取其他文件信息,但是DriveApp不能打开电子表格文件。您必须使用 SpreadsheetApp 打开电子表格文件。所以代码首先要获取文件夹,然后是文件夹中所有电子表格的列表,以及每个电子表格的ID。然后按 ID 打开电子表格。