有没有办法从doc中删除脚本(使用新的doc嵌入式脚本)

时间:2013-05-28 19:18:23

标签: google-apps-script

我开发了一个脚本扩展程序,它使用Google doc作为模板 AND作为脚本持有者

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

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

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

我的问题是(是):

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

enter image description here

1 个答案:

答案 0 :(得分: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);
  }
}