Google apps script DocsList to DriveApp:在对象:第165行中找不到函数addFile
我知道,谷歌不赞成Google apps script DocsList to DriveApp:在对象:第165行中找不到函数addFile,google-apps-script,Google Apps Script,我知道,谷歌不赞成DocsList而支持DriveApp,我并不是唯一一个遇到一些问题的人。我已将代码中对DocList的所有引用替换为DriveApp 我有一个包含变量的电子表格,用来很好地与谷歌文档模板合并,实际上是邮件合并 以下是声明的变量: var myDataSheet, myVariablesSheet; var rowId, maxRows, maxRowsOverride; var templateDocId; var timeZone, timestamp, dateline;
DocsList
而支持DriveApp
,我并不是唯一一个遇到一些问题的人。我已将代码中对DocList
的所有引用替换为DriveApp
我有一个包含变量的电子表格,用来很好地与谷歌文档模板合并,实际上是邮件合并
以下是声明的变量:
var myDataSheet, myVariablesSheet;
var rowId, maxRows, maxRowsOverride;
var templateDocId;
var timeZone, timestamp, dateline;
var newFolder, newFolderId, collectionDate, collectionName,appendTimestamp;
var newDocNameBase, newDocNameSuffixCol, newDocName, newDoc, newDocId;
var fieldColRow, fieldArr, colArr;
当我运行脚本时,我将返回代码第165行中标识的错误。错误状态为:
TypeError:在信函的对象副本中找不到函数addFile
代表模板。(第165行,文件“邮件合并”)
第165行内容如下:
DriveApp.getFileById(newDocId).addFile(DriveApp.getFolderByName(newFolderId));
奇怪的是,(至少对我来说)当我运行脚本时,我会得到一个输出的合并文档,但不会超过一个
我怀疑我正在处理某种失败的循环,以及我的文件命名和目标文件夹的问题,但我无法通过我所在的位置。。。非常感谢您提供的任何见解、帮助或直接修复。使用getFolderByName()
方法返回一个文件夹迭代器。换句话说,它返回一个可以包含多个元素的“对象”。即使您可能只有一个具有给定名称的文件夹,您仍然需要使用循环来访问该文件夹
您无法将一行代码中的所有方法链接在一起,从而产生错误。我看到您的代码中有一些错误
DriveApp.getFolderByName(String)
查找具有给定名称的文件夹,并返回多个文件夹。您似乎传入了文件夹的id。文件夹的id和名称不同。您可以创建一个名为“MyFolder”的文件夹和另一个名为“MyFolder”的文件夹。他们的名字将是相同的,但他们的id将是唯一的File.addFile(文件夹)代码>,它不存在。这就是为什么你会犯这样的错误。您应该将其切换并使用Folder.addFile(File)
。以下是固定代码:
DriveApp.getFolderById(newDocId).addFile(DriveApp.getFileById(newDocId))代码>
这个问题有点老了,但我希望我能帮上忙:)没有正确地修改。例如,你在一个文件对象上调用addFile,你需要更多的信息给我更多的指导吗?谢谢。恐怕我不是编码员,所以你可能需要为我把你的回复再解压缩一点…如果我发布整个脚本会有帮助吗?或者有没有更有效的方法。答案中的链接中有示例代码。您还需要学习如何使用JavaScript编程。