遍历文件夹中的所有电子表格并使用此代码进行编辑?

Iterate through all spreadsheets in the folder and edit with this code?

我希望循环通过给定文件夹中的所有电子表格提供的代码。我只是不知道该怎么做。我尝试遍历文件夹错误的每一种方式。我尝试了 10 种不同的变体。

我将使用可以插入文件夹 ID 号的独立脚本。 有任何想法吗? 非常感谢您提供的任何帮助。我还在学习,但越来越好。 :) 布兰登

function dataUpdate() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();  // Trying to iterate through all spreadsheets in a folder rather than using .getactivespreadsheet().
  var sheet = ss.getSheets()[0];
  var cell = sheet.getRange(2,7);
  var sheets = ss.getSheets()[3];
  var cell1 = sheets.getRange(7,8);
  var cell2 = sheets.getRange(7,9);
  
  cell.setValue('RTI')
  sheets.setName("RTI Data");
  sheets.getRange(4, 8).setValue('Cell Value');
  sheets.getRange(5, 8).setValue('1');
  sheets.getRange(6, 8).setValue('2');
  sheets.getRange(7, 8).setValue('3');
  sheets.getRange(5, 9).setValue('Tier 1');
  sheets.getRange(6, 9).setValue('Tier 2');
  sheets.getRange(7, 9).setValue('Tier 3');
 
  cell1.setHorizontalAlignment("center").setBackground("#f0f0f0");
  cell2.setHorizontalAlignment("center").setBackground("#f0f0f0");

}

查找 getFolderById() 或 getFoldersByName(),加上 SpreadsheetApp.openById(),您会很容易找到它。

编辑:制作存根:

// Iterates trough all files in given folder and logs the A1 in the first sheet in all of them
var folderId = "sdoijawodkhqoud98y12eh";
var folder = DriveApp.getFolderById(folderId);
var files = folders.getFiles();
while (files .hasNext()) {
  var file = files.next(),
      ss = SpreadsheetApp.openById(file.getId()),
      sheet = ss.getSheets()[0],
      A1Value = sheet.getRange("A1").getValue();
  Logger.log(A1Value);
}

此外,尝试一次处理多个范围,不要做很多 setValue() 和 getValue(),而是处理数组,我会这样对待它:

sheetRange = ss.getRange(1, 1, 7, 9); 
sheetVals = sheetRange.getValues();
sheetVals[ 1 ][ 6 ] = "RTI"
sheetVals[ 3 ][ 7 ] = "Cell Value"

// ... and so on...

sheetRange.setValues(sheetVals);
sheets.getRange(7, 8, 1, 2).setHorizontalAlignment("center").setBackground("#f0f0f0");

如良好实践所示:https://developers.google.com/apps-script/best_practices