需要谷歌推进服务方面的帮助:Drive.Files.Update

时间:2016-04-24 23:44:48

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

我将ERP中的xlsx文件转换为google驱动器文件夹(将它们放入“Drive for PC”应用程序文件夹中)。 我希望他们能够提供一个Google图纸主页,该图纸使用这些文件中的信息制作一些图纸和动态表格。在这个主表中我使用函数importrange(key sheet),所以我需要将源xlsx转换为gsheets文件。

我发现这个question帮助我解决了第一个问题,“如何自动转换驱动器文件夹中的文件”:

function convert() {
  var carpeta = DriveApp.getFolderById('idfolder');
  aconvertir = carpeta.getFiles();  
  while (aconvertir.hasNext()) {
    var archivo = aconvertir.next();
    var name = archivo.getName();
    var ID = archivo.getId();
    var xBlob = archivo.getBlob();
    var newFile = { title : name,
      key : ID,
      "parents": [{"id": "my id parent folder "} ] 
    }
    file = Drive.Files.insert(newFile, xBlob, {convert: true});
  }
}

这里的问题是我需要更新已转换的Google表格的内容,因为xlsx的内容不是静态的(每天都会更改)。所以我每天都想运行一个脚本来更新以前生成的gsheets内容。我写了这个脚本试图更新它们:

function pbafor() {
  xlsx = DriveApp.getFolderById('folder_with_xlsx').getFiles();
  gSheet = DriveApp.getFolderById('folder_with_gsheets_to_update').getFiles();
  while (xlsx.hasNext()) {
    var xBlob = xlsx.next().getBlob(); 
    var archDestino = {
      title: xlsx.next().getName(),
    }
    var idReemplazo = gSheet.next().getId();
    nvo = Drive.Files.update(archDestino, idReemplazo, xBlob);
  }
}

此脚本的问题在于它只更新folder_with_gsheets_to_update文件夹的第一个元素。

(注意:如果我尝试获取blob,var xBlob=xlsx.next().getBlob(),如果文件是gsheet,则应用程序脚本将显示服务器错误。如果文件是xslx mimetype,则不存在此服务器错误。)< / p>

0 个答案:

没有答案