从电子表格重新命名Google云端硬盘图片

时间:2017-12-19 01:18:41

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

我有一张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);
   }
}

但是,它给我发出以下错误消息: &#39;找不到具有给定ID的项目,或者您无权访问该项目。&#39; 我已经测试过脚本只能处理一个图像,而Name,它可以工作。 如何让它在整个范围内工作?

感谢。

1 个答案:

答案 0 :(得分:2)

从您的问题来看,似乎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]);
  }
}

参考:

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