【问题标题】:Import list of files and folders in google drive into google sheet将谷歌驱动器中的文件和文件夹列表导入谷歌表
【发布时间】:2021-06-05 23:26:26
【问题描述】:

我想在谷歌表格的特定文件夹中导入文件和文件夹列表。在电子表格的活动单元格中使用。

我是编程新手,我设法尝试了以下代码,但到目前为止它似乎不起作用。请检查一下好吗?

function listFolderContents() {
  var foldername = '14DWNgJloxIjw9zeE-0Q2u_k5wQflkMMC';
  var folderlisting = 'listing of folder ' + foldername;
  
  var folders = DriveApp.getFoldersByName(foldername)
  var folder = folders.next();
  var contents = folder.getFiles();
  
  //var ss = SpreadsheetApp.create(folderlisting);
  var cc = SpreadsheetApp.getCurrentCell();
 // var sheet = ss.getActiveSheet();


  var file;
  var name;
  var link;
  var cc;
  while(contents.hasNext()) {
    file = contents.next();
    name = file.getName();
    link = file.getUrl();  
    cc.push([name,link]);  
  }  
};

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

对于文件和文件夹... https://docs.google.com/spreadsheets/d/13fHMrWR9OOWa045uJbkz67YoVkOG4Pg6ScvrRpE-WBc/copy

function listFilesAndFolders() {
  var folderid = '18akqHAN7PSPMnG3h5HpCskQsMCv4TqCM'; // change FolderID
  var sh = SpreadsheetApp.getActiveSheet();
  sh.clear();
  sh.appendRow(["parent","folder", "name", "update", "size", "URL", "ID", "description", "type"]);
  try {
    var parentFolder =DriveApp.getFolderById(folderid);
    listFiles(parentFolder,parentFolder.getName())
    listSubFolders(parentFolder,parentFolder.getName());
  } catch (e) {
    Logger.log(e.toString());
  }
}

function listSubFolders(parentFolder,parent) {
  var childFolders = parentFolder.getFolders();
  while (childFolders.hasNext()) {
    var childFolder = childFolders.next();
    Logger.log("Fold : " + childFolder.getName());
    listFiles(childFolder,parent)
    listSubFolders(childFolder,parent + "|" + childFolder.getName());
  }
}

function listFiles(fold,parent){
  var sh = SpreadsheetApp.getActiveSheet();
  var data = [];
  var files = fold.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    data = [ 
      parent,
      fold.getName(),
      file.getName(),
      file.getLastUpdated(),
      file.getSize(),
      file.getUrl(),
      file.getId(),
      file.getDescription(),
      file.getMimeType()
      ];
    sh.appendRow(data);
  }
}

【讨论】:

    【解决方案2】:
    function youfunc() {
      const folderid = '';
      const folder = DriveApp.getFolderById(folderid);
      const files = folder.getFiles();
      var a = '';
      while(files.hasNext()) {
        let file = files.next();
        a += `filename: ${file.getName()} fileid: ${file.getId()} filesize: ${file.getSize()}\n`;
      }
      const ss = SpreadsheetApp.getActive();
      const sh = ss.getSheetByName('Sheet1');
      const rg = sh.getrange('A1').setValue(a)
    }
    

    【讨论】:

    • 嗨,谢谢你的帮助...但它显示一个错误... TypeError: sh.getrange is not a function (line 13, file "test")Dismiss
    • 可能您需要更改工作表名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    相关资源
    最近更新 更多