我将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>