1

私はこれに対する答えを検索して検索しましたが、運がありません。doc.replaceText() を使用してドキュメントからテキストを置き換えようとしています。(スプレッドシートからのメール送信に関する同じチュートリアルを参照)。%、#、またはその他の特殊文字を試しても、文字列は置き換えられません。どんな助けでも大歓迎です。

ここに私のコードスニペットがあります:

function createHtmlMessage(gradesList) 
{

  var templateDocId = ScriptProperties.getProperty("EmailTemplateDoc");
  var docId = DocsList.getFileById(templateDocId).makeCopy().getId();
  var doc = DocumentApp.openById(docId);
  var body = doc.getActiveSection();
  var html = "";

  var keys = {
      STUDENT_NAME: "student",
      GR_ENGLISH: gradesList[0],
      GR_MATHS: gradesList[1],
      GR_SCIENCE: gradesList[2],
      GR_SOCIAL: gradesList[3],
      GR_2NDLANG: gradesList[4],
      GR_3RDLANG: gradesList[5],
      GR_COMPUTERS: gradesList[6],
      REMARKS: "remarks"
  };


  for ( var k in keys ){
     var source = k;
     var dest = keys[k];
     body.replaceText("%" + k + "%", keys[k]);
  }
  html = getDocAsHtml(docId);

  DocsList.getFileById(docId).setTrashed(true);
  return html;
}

私のすべての「キー」は、前後に「%」記号が付いたドキュメントに存在します。

4

3 に答える 3

1

変更を行った後、ドキュメントを破棄しているようです。目的がわからない いずれにせよ、変更を行った後は Document.saveAndClose() を試す必要があります。

于 2012-07-20T06:30:46.080 に答える
0

ドキュメントを HTML として取得する前に保存する必要があります

for ( var k in keys ){
     var source = k;
     var dest = keys[k];
     body.replaceText("%" + k + "%", keys[k]);
  }
doc.saveAndClose();
html = getDocAsHtml(docId);
于 2012-07-20T06:44:01.617 に答える
0

まったく同じテーマのこの投稿を見ましたか?

また、あなたの機能に何があるか分からないので、保存についてSrikが言ったことについてはわかりませんgetDocAsHtml(docId) ....多分あなたもその部分を投稿できますか?

編集:コードをテストしたところ、置換部分が期待どおりに機能しました...問題はhtmlへの変換にあると思われます。ゴミ箱に捨てたドキュメントを保管して、これが問題ないかどうかを確認する必要があります。

于 2012-07-20T06:58:23.403 に答える