2016-12-22 9 views
-1

私は、別の定義済みのテンプレートを読み込むオプションを持つアドインを作成しています。現在のドキュメントに.docxファイルをロードするのに役立つ必要があります

私はdocxファイルとして私のPCにこれらのテンプレートを持っています。

私はメソッドbody.insertFileAsBase64を知っていますが、私はそれを動作させることはできません!

function insertTemplate01() { 
    Word.run(function (context) { 

     var body = context.document.body; 
     body.clear(); 
     body.insertText("rapport 1", "Start"); 


     return context.sync(); 

    }); 
} 

文字列を挿入するのではなく、.docxファイルをテンプレートとしてロードします。

私はこれを行う方法の赤ん坊ステップガイドが必要だと思います。

docxファイルをbase64に変換して現在のドキュメントに読み込む方法がわかりません。

ありがとうございます!

答えて

1

body.insertFileAsBase64は、目的に応じて動作する必要があります。 私はあなたがdocxファイルのbase64エンコーディングに問題があると仮定しています。この「愚かな物語」の例は、文書がいくつかのURLで利用可能であると仮定して、base64を入手して文書に挿入する方法を示しています。ここで

https://github.com/OfficeDev/Word-Add-in-SillyStories/blob/master/sample.js

バイナリからのbase64を取得する方法について別の議論です:あなたはこのような何かを行うことができBASE64にバイナリストリームを変換するための Convert binary data to base64 with javascript

function insertPickedFile() { 
 
     var myFile = document.getElementById("FileToPick"); // assuming there is a <input type="file" id="FileToPick"> element, btw this will be the handler for its change event.. so you also need to initialize a handler like  $('#FileToPick').change(insertPickedFile); 
 
    
 
     var reader = new FileReader(); 
 
     reader.onload = (function (theFile) { 
 
      return function (e) { 
 
       
 
       Word.run(function (context) { 
 
        var startIndex = e.target.result.indexOf("base64,"); // when you use the readAsDataURL method the base64 is included in the result, we just need to get that substring, and then insert it using office.js :) 
 
        var mybase64 = e.target.result.substr(startIndex + 7, e.target.result.length); 
 
        context.document.body.insertFileFromBase64(mybase64, "replace"); 
 
        return context.sync()  
 

 
       })        
 
      }; 
 
     })(myFile.files[0]); 
 

 
     // Read in the image file as a data URL. 
 
     reader.readAsDataURL(myFile.files[0]); 
 
    
 
}

+0

返信いただきありがとうございます! 私の.docxファイルをbase64に変換する方法は分かりません。 – Simmer

+0

こんにちは遅延のために申し訳ありません、私は数日間外出していた:)。私はちょうど私の答えに詳細を追加したので、ファイル入力HTML要素を使ってファイルを取得した場合にbase64エンコードを取得する方法を見ることができます。私は他のサンプルも参照していますが、これはあなたのシナリオでは十分すぎるはずです。ありがとう! –

関連する問題