【问题标题】:How to log Google Drive File Names to Google Sheets using Google Apps Script如何使用 Google Apps 脚本将 Google Drive 文件名记录到 Google Sheets
【发布时间】:2020-03-22 12:40:23
【问题描述】:

因此,我正在尝试使用 Google Apps 脚本将文件(及其 ID)从我的云端硬盘记录到电子表格中。问题是我不知道如何将内容添加到 Google 表格文档的行中。

我知道如何记录我的文件及其 ID:

var files = DriveApp.getFiles();
while (files.hasNext()) {
    var file = files.next();
    Logger.log(file.getName());
    Logger.log(file.getId());
}

现在我想将我的文件的名称和 ID 从一个文件夹记录到 Google 工作表中。有人知道如何实现吗?

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-drive-api


    【解决方案1】:

    您需要获取电子表格,并将文件名添加到二维数组中。以下代码要求您输入电子表格文件 ID 和工作表选项卡名称。

    function logFilesToSheet() {
      var arrayForOneRow,file,id,name,outerArray,sh,ss;
    
      id = "";//Enter your spreadsheet file id here
      name = "";//Enter the sheet tab name here
    
      ss = SpreadsheetApp.openById(id);
      sh = ss.getSheetByName(name);
    
      outerArray = [];
    
      var files = DriveApp.getFiles();
    
      while (files.hasNext()) {
        file = files.next();
    
        //Logger.log(file.getName());
        //Logger.log(file.getId());
    
        arrayForOneRow = [];//Reset on each loop - Each row needs a new array
    
        arrayForOneRow.push(file.getName());
        arrayForOneRow.push(file.getId());
    
        outerArray.push(arrayForOneRow);
      }
    
      sh.getRange(sh.getLastRow() + 1,1,outerArray.length,2).setValues(outerArray);
    }
    

    【讨论】:

    • 感谢您的回答!但是,我无法让代码工作。它导出这个(最后有不同的数字):[Ljava.lang.Object;@7742d5f7.你知道如何解决这个问题吗?
    • 另外,如果可能的话,我想将名称添加到一列,将 ID 添加到另一列?
    • ` [Ljava.lang.Object;@7742d5f7` 表示它是一个未转换为字符串的对象。您是否在日志或电子表格中看到了这一点?我更改了答案以包括名称和 ID。
    • 我犯了一个错误。 appendRow 采用一维数组,我创建了一个二维数组。查看新答案。如果这回答了您的问题,您可以点击绿色复选标记。
    • 感谢更新!当这工作时我将单击绿色复选标记,但是当我执行脚本时会出现此错误消息:`异常:无法将'function(){[本机代码]}1'转换为int。 (第 28 行,文件“代码”)` 有没有办法修复它?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2015-07-10
    • 1970-01-01
    • 2021-12-10
    相关资源
    最近更新 更多