1

我开发了一个脚本扩展,它使用 Google 文档作为模板和脚本持有者

它为我提供了一个非常好的环境来实现邮件合并应用程序(见下文)。在某些时候,我使用DocsList 该类makeCopy(new Name)来生成将被修改和发送的所有文档。它就像这样:

var docId=docById.makeCopy('doc_'+Utilities.formatString("%03d",d)).getId();

一切都很好,但是(当然)模板文档的每个副本都包含脚本的副本,这显然不是必需的!这也有点烦人,因为每次我打开副本检查数据是否正确时,我都会得到自动打开的侧边栏菜单,这是一个耗时的过程......

我的问题是(是):

  • 有没有办法从副本中删除嵌入的脚本?(那很简单)
  • 还是应该将模板中的所有文档元素复制到一个空文档中?(这也是一种可能的方法,但我没有尝试,我不知道这个文档在现实生活中会用到什么......无论如何我都应该得到一个完美的克隆吗?)我已经阅读了doc 并没有找到任何相关的线索,但谁知道呢?也许我错过了一些明显的东西;-)

以下是显示此问题上下文的简化屏幕截图:

在此处输入图像描述

4

1 回答 1

1

按照 Henrique 的建议,我使用了一种解决方法来阻止 UI 加载新创建的文档...(感谢 Henrique,这很聪明 ;-)

onOpen 调用的函数现在是这样的:

function showFields() {
  var doc = DocumentApp.getActiveDocument();
  var body = doc.getBody();
  var find = body.findText('#'); // the new docs have no field markers anymore. 
  if(find != null){  // show the UI only if markers are present in the document.
  var html = HtmlService.createHtmlOutputFromFile('index')
      .setTitle("Outils de l'option Publipostage").setWidth(370);
  ui.showSidebar(html);
  }
}
于 2013-05-31T20:34:03.370 回答