背景信息:我有一个包含Google Docs的文件夹,其中包含有关它们的编号信息。我提供了dummy folder给你一个想法。基本上我想在文档和标题中用“文件17”,“文件17和文件18”替换“文件16”,即“文件X”和“文件X + 1”。 /强>
通过在线使用doc.replaceText和Universal Find and Replace函数,我能够为这个确切的场景创建一个for循环,并且它在Document的内容中完美地工作。我不得不以相反的顺序循环它,所以16 - > 17不会变成16 - > 17 - > 18.完整的代码和应用程序脚本位于我提供的文件夹中,但这里特别是for循环:
for (i = 30; i > 10; i--) {
var v = i + 1;
doc.replaceText("File " + i, "File " + v);
};
我正在寻找一种方法来使用类似的for循环来替换部分文档的标题。所以要将“Title 16”更改为“Title 17”,将“Title 17”更改为“Title 18”等.Google App Scripts中是否有允许我这样做的功能?
答案 0 :(得分:0)
Document类允许您在单个文档的级别进行更改。 replaceText()是Body类的方法,不能在这种情况下使用。
使用DriveApp访问文件系统级别的文件。 getFiles()返回FileIterator类的实例,该实例是节点的链接列表。每个节点引用列表中的下一个节点 - 如果next()返回' null',则表示列表的结尾。缺点是你只能从头到尾阅读文件,不能跳过。
function assignFileNames(){
var iterator = DriveApp.getFolderById(yourFolderId).getFiles();
var file;
var i=0;
while(iterator.hasNext()) {
i++;
file = iterator.next();
file.setName("name " + i);
}
}
您可以通过使用DocumentApp并按名称或ID打开每个文件来获得相同的结果,但这样会更慢,效率更低。