【问题标题】:Re-Name Google Drive Images from Spreadsheet从电子表格重命名 Google Drive 图像
【发布时间】:2017-12-19 01:18:40
【问题描述】:

我有一个 Google 表单,人们在其中提交了自己的照片。 此数据已存储在电子表格中。 我想将所有提交的照片重命名为该人的姓名,以便我们可以分辨照片中的谁是谁 - 而无需手动操作。

为此,我创建了这个脚本:

function reName() {
var sheetName = 'Data';
var sheet = 
SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName); 
var newName = sheet.getRange("C2:C10");                        
var ID = sheet.getRange("D2:D10");                        
var nameData = newName.getValues();
var idData = ID.getValues();

for (var i = 0, iLen = nameData.length; i < iLen; i++) {

var file = DriveApp.getFileById(ID);

file.setName(newName);
   }
}

但是,它向我抛出以下错误消息: “找不到具有给定 ID 的项目,或者您无权访问它。” 我已经测试了该脚本仅适用于一个图像和名称,它有效。 我怎样才能让它在整个范围内工作?

谢谢。

【问题讨论】:

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


    【解决方案1】:

    从您的问题来看,newNameID 似乎分别位于“C2:C10”和“D2:D10”中。那么下面的修改呢?

    修改点:

    • getValues()检索到的数据是二维数组。
    • 可以将“C2:C10”和“D2:D10”的数据检索到数组中。

    修改后的脚本:

    function reName() {
      var sheetName = 'Data';
      var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
      var data = sheet.getRange("C2:D10").getValues();
      for (var i in data) {
        var file = DriveApp.getFileById(data[i][1]);
        file.setName(data[i][0]);
      }
    }
    

    参考:

    如果这不起作用,请告诉我。我要修改。

    【讨论】:

    • 感谢您的帮助。这非常有效。我肯定在努力让我的头脑绕过阵列。干杯。
    • @Jesse Gardner-Russell 欢迎您。也谢谢你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2011-02-18
    • 1970-01-01
    相关资源
    最近更新 更多