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() 时,您新创建的文档都会自动在新选项卡中打开。

学分:https://ru.whosebug.com/questions/1174330