2017-01-09 4 views
4

私はMS Word用の簡単な文法修正Webアドインに取り組んでいます。基本的には、選択したテキストを取得し、最小限の変更を行い、訂正されたテキストでドキュメントを更新したいと考えています。現在、強制変換のタイプとして 'text'を使用すると、フォーマットが失われます。選択したテキストに表またはイメージがある場合、それらも消えてしまいます。書式を維持してテキストをMS Word Webアドインに置き換えるにはどうすればよいですか?

私が今まで行ってきた調査からわかるように、openxmlはやり方です。しかし、私はウェブ上で有用な例を見つけることができませんでした。元の書式データを保持してテキストを操作するにはどうすればよいですか?テキスト以外の段落を無視するにはどうすればよいですか?私は、OfficeのJavaScript APIでこれを行うことができるようにしたい:

enter image description here

答えて

1

私はこのような何かをするだろう:

// get data as OOXML 
Office.context.document.getSelectedDataAsync(Office.CoercionType.Ooxml, function (result) { 
    if (result.status === "succeeded") { 
     var selectionAsOOXML = result.value; 
     var bodyContentAsOOXML = selectionAsOOXML.match(/<w:body.*?>(.*?)<\/w:body>/)[1]; 

     // perform manipulations to the body 
     // it can be difficult to do to OOXML but with som regexps it should be possible 
     bodyContentAsOOXML = bodyContentAsOOXML.replace(/error/g, 'rorre'); // reverse the word 'error' 

     // insert the body back in to the OOXML 
     selectionAsOOXML = selectionAsOOXML.replace(/(<w:body.*?>)(.*?)<\/w:body>/, '$1' + bodyContentAsOOXML + '<\/w:body>'); 

     // replace the selected text with the new OOXML 
     Office.context.document.setSelectedDataAsync(selectionAsOOXML, { coercionType: Office.CoercionType.Ooxml }, function (asyncResult) { 
      if (asyncResult.status === "failed") { 
       console.log("Action failed with error: " + asyncResult.error.message); 
      } 
     }); 
    } 
}); 
+0

あなたが私の答えについて質問がありますか? – jkh

関連する問題