1

Google ドキュメントをテンプレートとして使用し、スクリプト ホルダーとして使用するスクリプト拡張機能を開発しました。

これは、差し込み印刷アプリケーションを実装するための非常に優れた環境を提供してくれます (以下を参照)。ある時点で、DocsList クラスを使用してmakeCopy(new Name)、変更して送信するすべてのドキュメントを生成します。それは簡単に次のようになります:

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

すべてが非常にうまく機能しますが、(もちろん) テンプレート ドキュメントの各コピーにはスクリプトのコピーが含まれていますが、これは明らかに必要ではありません。データが正しいかどうかを確認するためにコピーを開くたびに、時間のかかるプロセスであるサイドバー メニューが自動的に開くので、少し面倒です ...

私の質問は(です)です:

  • 埋め込みスクリプトをコピーから削除する方法はありますか? (それは簡単だろう)
  • または、すべての doc 要素をテンプレートから空のドキュメントにコピーする必要がありますか? (これも可能な方法ですが、試していませんでした。実際の使用でこのドキュメントに何が含まれているかわかりません...いずれにせよ、完全なクローンを取得する必要がありますか?) 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 に答える