我有一个带有附加脚本的Google表格文件。该脚本做了很多事情,一个是使用makeCopy自我克隆。这部分有效。现在,我希望能够保留相同的克隆Google文件名和相同的Google文件ID,只需更新包含电子表格和相关Google脚本的内容。
if (!fileFound){
var file = masterSSFile.makeCopy(reportFileName, RepFolder);
} else {
oldFile.setContent(masterSSFile.getBlob());
}
当我使用具有相同文件名的makeCopy时,它会创建一个具有相同名称但具有不同文件ID的第二个文件。 else部分失败,因为.setContent参数似乎只接受文本。结果是oldFile中的“Blob”一词,其他一切都消失了。
我有其他脚本通过覆盖各种工作表的内容来更新现有电子表格的内容,但我也希望关联的脚本也包含在更新的文件中,并保留相同的文件ID。
答案 0 :(得分:0)
我发现了这个......
Overwrite an Image File with Google Apps Script
并尝试使用
var masterSpreadsheetID = SpreadsheetApp.getActiveSpreadsheet().getId();
var masterSpreadsheetFile = DriveApp.getFileById(masterSpreadsheetID);
var oldFileID = oldFile.getId();
var oldFileName = oldFile.getName();
var newBlob = masterSpreadsheetFile.getBlob();
var file = {
title: oldFileName,
mimeType: 'application/vnd.google-apps.spreadsheet'
};
var f = Drive.Files.update(file, oldFileID, newBlob);
我收到错误:"我们很抱歉,发生了服务器错误。请稍等一下再试一次。 "在这一行:" Drive.Files.update(file,oldFileID,newBlob);"
看完之后: https://github.com/google/google-api-nodejs-client/issues/495
它看起来像Drive.Files.update(),不支持绑定脚本。