我有一些旧代码在5年前非常有用,可以使用Google表单并从信息中填充预先设计的模板。我不需要一会儿使用它,但是现在我有一个类似的项目,并且正在尝试使过时的代码恢复活力。我有一个错误,我找不到或无法找到在线答案。请帮忙!
代码的相关部分是:
//创建模板的副本
var copy = DriveApp.getFileById(docTemplate)
.makeCopy(docName+' TEST ')
.getId();
//打开临时文档
var copyDoc = DocumentApp.openById(copy);
第一部分起作用,在我的Google云端硬盘中创建了文档的副本,并且var copy返回新文档ID的值。
我收到错误消息“无法访问该文档。请稍后再试。(第79行,文件“代码”)”
代码的第79行是:“ var copyDoc = DocumentApp.openById(copy);”。
我尝试了一些用于打开文件的不同代码,它们都返回相同的错误消息。
答案 0 :(得分:2)
只是想分享我对这个问题的解决方案。我知道这是一个旧线程,但将来可能会有其他人偶然发现这个线程,他们仍在努力解决这个问题。
我刚才遇到了这个错误。事实证明,克隆并尝试打开的文件是“.docx”文件。上传到谷歌驱动器的 MS word 文件。 DocumentApp API 只能打开 google docs 文件。要解决此问题,只需打开正在克隆的基本文件,然后选择文件 > 另存为 Google 文档。这将创建一个新文件。将其用作新的基础文件。
答案 1 :(得分:1)
这对我有用:
function runOne() {
var docTemplate='id string';
var file=DriveApp.getFileById(docTemplate);
var copy = file.makeCopy(file.getName()+'TEST').getId();
var copyDoc = DocumentApp.openById(copy);
copyDoc.getBody().appendParagraph("This is new text.");
copyDoc.saveAndClose();
}
当然,当脚本通过ID打开文档时,它实际上并不使用用户界面打开它,而是仅在服务器上打开它。但是当我打开它时,一定要确保appendedParagrahp在那里。
答案 2 :(得分:0)
实际上,自从新版本发布以来,您不能只运行脚本...我花了很多时间在此工作。
1您需要创建一个标准项目 2获取ID并将其提供给脚本 3在脚本上启用所需的API(驱动器,文档等) 4在GCP项目上也是如此
完成此操作后,文件开始打开文件。 主要问题是表单(或其他表单)上的触发器无法打开文档以确保安全。这让我很痛苦,因为您现在需要在顶部做一堆其他事情...