如何仅列出文件夹中的电子表格或将文件对象转换为电子表格对象



我想从同一文件夹中的其他电子表格中获得的值中填充工作表。

如何从文件夹中列出的文件中调用getSheetByName()

我的代码:

function listFilesInFolder() {
    var spsh = SpreadsheetApp.getActiveSpreadsheet();
    var spshid = spsh.getId();
    var folder = DriveApp.getFileById(spshid).getParents().next();
    var folderId = folder.getId();
    var contents = DriveApp.getFolderById(folderId).getFiles()
    var sh;

    var oldVal;
    var newVal;
    while (contents.hasNext()) {
        sh = contents.next();
        if (sh.getName() != spsh.getName())
        {
             newVal = sh.getSheetByName('SCORE').getRange('J5').getValue(); 
             oldVal = spshg.getActiveSheet().getRange('A1').getValue();
             spsh.getRange('A1').setValue(newVal+oldVal);
         }


     }
};
使用

DriveApp 列出文件后,您需要获取其 ID,然后使用按 ID 的电子表格打开它们。随后,您可以使用 getSheets(( 方法来获取工作表名称。您应该在if条件下实现仅使用电子表格应用程序访问电子表格,而不是驱动器文件夹中包含的所有文件,否则会出现错误。

   sh = contents.next();
   shID=sh.getId();
   if (sh.getMimeType()=='application/vnd.google-apps.spreadsheet' && sh.getName() != spsh.getName())
      {
        var sheets = SpreadsheetApp.openById(shID).getSheets();
        if(sheets.length>=1)
        for (var i=0; i<sheets.length; i++) 
         {
          //here instead of logging you can implement your desired functionality, like setValue etc.
           Logger.log(sheets[i].getName());
          }

相关内容

最新更新