Google 应用程序脚本 |页眉和页脚 |替换文字
Google App Script | Headers and Footers | Replace text
我正在尝试构建一个脚本来替换 Google 文档中的一些数据。
我只是在观察一个问题。该脚本适用于从第二页到最后一页的所有正文和页脚。
我的首页页脚设置为与其他页脚不同,但我找不到修改其内容的方法。
你有什么解决办法吗?
顺便说一句,我正在寻找一种在脚本末尾在浏览器中打开新文档的方法。还有什么解决办法吗?
这是我的脚本的一部分。
var documentId = DriveApp.getFileById('1mh8yjFpy7NcjB8meXWvn1SKQofjSMcFdPqWBe4GoC14').makeCopy().getId();
var body = DocumentApp.openById(documentId).getBody();
var footer = DocumentApp.openById(documentId).getFooter();
DriveApp.getFileById(documentId).setName('RM_' + RM + '_' + IDEtude + "_" + Prenom + "_" + Nom);
footer.replaceText("{RM_REF}", RM);
footer.replaceText("{PROJECT_REF}", IDEtude);
body.replaceText("{RM_REF}", RM);
body.replaceText("{PROJECT_REF}", IDEtude);
body.replaceText("{NumeroBA}", numBA);
body.replaceText('{PrenomNom}', Prenom + " " +Nom);
body.replaceText('{adresse}', Adresse);
body.replaceText('{code postal et ville}', CP);
body.replaceText('{numero de telephone}', NumTel);
body.replaceText('{CLIENT_COMPANY}', NomClient);
body.replaceText('{DatedeFin}', DatedeFin);
body.replaceText('{DatedeDebut}', DatedeDebut);
body.replaceText('{FaitLe}',Date);
body.replaceText('{Ville}',VilleCdP);
感谢您的帮助!
尝试在第 37 行之后的 Code.gs
中添加这三行:
first_footer = footer.getParent().getChild(3);
first_footer.replaceText("{RM_REF}", RM);
first_footer.replaceText("{PROJECT_REF}", IDEtude);
...getParent().getChild(3)
— 是获取 'different first page' 页脚的黑客攻击(可能是你的情况)
我决定添加关于如何在新选项卡中从 GAS 打开新文档(或任何文档)的非常重要的部分。方法在这里。
在主函数的末尾 GenererRM()
您需要添加:
redirect('https://docs.google.com/document/d/' + documentId);
它使用新文档的 ID 调用函数 redirect()
。该功能如下(需要在您的脚本中添加一个功能):
function redirect(SSurl) {
let html = HtmlService.createTemplateFromFile('redirect.html');
html.SSurl = SSurl;
var htmlOutput = html.evaluate();
DocumentApp.getUi().showModalDialog(htmlOutput,'Bon voyage!');
}
然后您需要制作新文件 redirect.html
以及您的 Code.gs
。
这是该文件的内容:
<!DOCTYPE html>
<html>
<body>
<script>
var SSurl = <?= SSurl ?> ;
window.open(SSurl,"_blank");
google.script.host.close();
</script>
</body>
<html>
就这些了。现在,每次调用函数 redirect()
时,您新创建的文档都会自动在新选项卡中打开。
我正在尝试构建一个脚本来替换 Google 文档中的一些数据。 我只是在观察一个问题。该脚本适用于从第二页到最后一页的所有正文和页脚。 我的首页页脚设置为与其他页脚不同,但我找不到修改其内容的方法。
你有什么解决办法吗? 顺便说一句,我正在寻找一种在脚本末尾在浏览器中打开新文档的方法。还有什么解决办法吗? 这是我的脚本的一部分。
var documentId = DriveApp.getFileById('1mh8yjFpy7NcjB8meXWvn1SKQofjSMcFdPqWBe4GoC14').makeCopy().getId();
var body = DocumentApp.openById(documentId).getBody();
var footer = DocumentApp.openById(documentId).getFooter();
DriveApp.getFileById(documentId).setName('RM_' + RM + '_' + IDEtude + "_" + Prenom + "_" + Nom);
footer.replaceText("{RM_REF}", RM);
footer.replaceText("{PROJECT_REF}", IDEtude);
body.replaceText("{RM_REF}", RM);
body.replaceText("{PROJECT_REF}", IDEtude);
body.replaceText("{NumeroBA}", numBA);
body.replaceText('{PrenomNom}', Prenom + " " +Nom);
body.replaceText('{adresse}', Adresse);
body.replaceText('{code postal et ville}', CP);
body.replaceText('{numero de telephone}', NumTel);
body.replaceText('{CLIENT_COMPANY}', NomClient);
body.replaceText('{DatedeFin}', DatedeFin);
body.replaceText('{DatedeDebut}', DatedeDebut);
body.replaceText('{FaitLe}',Date);
body.replaceText('{Ville}',VilleCdP);
感谢您的帮助!
尝试在第 37 行之后的 Code.gs
中添加这三行:
first_footer = footer.getParent().getChild(3);
first_footer.replaceText("{RM_REF}", RM);
first_footer.replaceText("{PROJECT_REF}", IDEtude);
...getParent().getChild(3)
— 是获取 'different first page' 页脚的黑客攻击(可能是你的情况)
我决定添加关于如何在新选项卡中从 GAS 打开新文档(或任何文档)的非常重要的部分。方法在这里。
在主函数的末尾 GenererRM()
您需要添加:
redirect('https://docs.google.com/document/d/' + documentId);
它使用新文档的 ID 调用函数 redirect()
。该功能如下(需要在您的脚本中添加一个功能):
function redirect(SSurl) {
let html = HtmlService.createTemplateFromFile('redirect.html');
html.SSurl = SSurl;
var htmlOutput = html.evaluate();
DocumentApp.getUi().showModalDialog(htmlOutput,'Bon voyage!');
}
然后您需要制作新文件 redirect.html
以及您的 Code.gs
。
这是该文件的内容:
<!DOCTYPE html>
<html>
<body>
<script>
var SSurl = <?= SSurl ?> ;
window.open(SSurl,"_blank");
google.script.host.close();
</script>
</body>
<html>
就这些了。现在,每次调用函数 redirect()
时,您新创建的文档都会自动在新选项卡中打开。