Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script DocsList to DriveApp:在对象:第165行中找不到函数addFile_Google Apps Script - Fatal编程技术网

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编程。