Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将驱动器文件列表放入Google工作表_Javascript_Google Apps Script_Google Sheets_Google Drive Api - Fatal编程技术网

Javascript 将驱动器文件列表放入Google工作表

Javascript 将驱动器文件列表放入Google工作表,javascript,google-apps-script,google-sheets,google-drive-api,Javascript,Google Apps Script,Google Sheets,Google Drive Api,每次清除所有数据后,从开始添加数据 sheet.clear();表.附录行([“名称”、“数据”、“尺寸”]) 有没有办法检查数据? 如果已经存在相同的数据,则该函数对该行不起作用 如果添加了新记录,也应添加该记录,但函数不会从一条记录重新开始 如果我的文件夹中有20个PDF,并在文件夹中再添加一个PDF,则添加函数21 PDF,不要从头开始运行该函数。说明: 以下脚本背后的逻辑如下: 我们获取当前在工作表的D列中的所有文件的url。这些是迄今为止记录的文件的url。我们可以放心地假设URL总是

每次清除所有数据后,从开始添加数据

sheet.clear();表.附录行([“名称”、“数据”、“尺寸”])

有没有办法检查数据?
如果已经存在相同的数据,则该函数对该行不起作用

如果添加了新记录,也应添加该记录,但函数不会从一条记录重新开始

如果我的文件夹中有20个PDF,并在文件夹中再添加一个PDF,则添加函数21 PDF,不要从头开始运行该函数。

说明: 以下脚本背后的逻辑如下:

  • 我们获取当前在工作表的D列中的所有文件的
    url
    。这些是迄今为止记录的文件的
    url
    。我们可以放心地假设
    URL
    总是唯一的:

      var folder = DriveApp.getFolderById('1_gA4D7dfybJ60IdfgsnqdfdsgVoo9D76fgsdgf9cqmAnJI7g7');
      var contents = folder.getFiles();
      var file;
      var name;
      var sheet = SpreadsheetApp.getActiveSheet();
      var date;
      var size;
    
      sheet.clear();
      sheet.appendRow(["Nome", "Data", "Dimensione"]);
    
      while(contents.hasNext()) {
        file = contents.next();
        name = file.getName();
        date = file.getDateCreated();
        size = file.getSize();
        id = file.getUrl();
    
        data = [name, date, size,id]
        sheet.appendRow(data);
      }
    };
    
  • 第二步是像原始脚本一样迭代文件,并检查文件的
    URL
    是否位于
    aURLs
    中。如果文件
    URL
    不是
    aURLs
    中的或者在D列中的not,则将其添加到
    newFiles
    数组中:

    const aURLs = sheet.getRange('D2:D'+sheet.getLastRow()).getValues().flat();
    
  • 检查完所有文件后,我们可以在最后一行工作表后,仅添加新文件:

  • sheet.getRange(sheet.getLastRow()+1,1,newFiles.length,newFiles[0].length).设置值(newFiles)


    解决方案: 仅第一次在文件中手动添加标题:

    然后每次执行脚本:

    if(!uNames.includes(name)){
     newFiles.push(data);
     }
    
    说明: 以下脚本背后的逻辑如下:

  • 我们获取当前在工作表的D列中的所有文件的
    url
    。这些是迄今为止记录的文件的
    url
    。我们可以放心地假设
    URL
    总是唯一的:

      var folder = DriveApp.getFolderById('1_gA4D7dfybJ60IdfgsnqdfdsgVoo9D76fgsdgf9cqmAnJI7g7');
      var contents = folder.getFiles();
      var file;
      var name;
      var sheet = SpreadsheetApp.getActiveSheet();
      var date;
      var size;
    
      sheet.clear();
      sheet.appendRow(["Nome", "Data", "Dimensione"]);
    
      while(contents.hasNext()) {
        file = contents.next();
        name = file.getName();
        date = file.getDateCreated();
        size = file.getSize();
        id = file.getUrl();
    
        data = [name, date, size,id]
        sheet.appendRow(data);
      }
    };
    
  • 第二步是像原始脚本一样迭代文件,并检查文件的
    URL
    是否位于
    aURLs
    中。如果文件
    URL
    不是
    aURLs
    中的或者在D列中的not,则将其添加到
    newFiles
    数组中:

    const aURLs = sheet.getRange('D2:D'+sheet.getLastRow()).getValues().flat();
    
  • 检查完所有文件后,我们可以在最后一行工作表后,仅添加新文件:

  • sheet.getRange(sheet.getLastRow()+1,1,newFiles.length,newFiles[0].length).设置值(newFiles)


    解决方案: 仅第一次在文件中手动添加标题:

    然后每次执行脚本:

    if(!uNames.includes(name)){
     newFiles.push(data);
     }