Ms word 需要帮助将.docx文件加载到当前文档中吗

Ms word 需要帮助将.docx文件加载到当前文档中吗,ms-word,office-js,Ms Word,Office Js,我正在编写一个外接程序,用户可以选择加载不同的预定义模板 我的电脑上有这些模板作为docx文件 我知道body.insertFileAsBase64方法,但我无法让它工作 function insertTemplate01() { Word.run(function (context) { var body = context.document.body; body.clear(); body.insertText("rapport 1"

我正在编写一个外接程序,用户可以选择加载不同的预定义模板

我的电脑上有这些模板作为docx文件

我知道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,然后使用它们加载到当前文档中


非常感谢

body.insertFileAsBase64必须适用于您的目的。 我假设您对docx文件的base64编码有问题。看看这个“愚蠢的故事”示例,它展示了如何获取base64,然后将其插入到文档中,假设文档在某个URL中可用

下面是关于如何从二进制文件获取base64的另一个讨论:

要将二进制流转换为base64,可以执行以下操作:

函数insertPickedFile(){
var myFile=document.getElementById(“FileToPick”);//假设有一个元素,顺便说一句,这将是其更改事件的处理程序。因此,您还需要初始化处理程序,如$('#FileToPick').change(insertPickedFile);
var reader=new FileReader();
reader.onload=(函数(文件){
返回函数(e){
运行(函数(上下文){
var startIndex=e.target.result.indexOf(“base64”);//当您使用readAsDataURL方法时,base64包含在结果中,我们只需要获取该子字符串,然后使用office.js:)插入它
var mybase64=e.target.result.substr(startIndex+7,e.target.result.length);
context.document.body.insertFileFromBase64(mybase64,“替换”);
返回context.sync()
})                               
};
})(myFile.files[0]);
//作为数据URL读入图像文件。
reader.readAsDataURL(myFile.files[0]);

}
谢谢您的回复!问题是,我不知道如何将我的.docx文件转换为base64。您好,很抱歉我耽搁了几天:)。我只是在我的答案中添加了更多细节,这样您就可以看到,如果您使用文件输入HTML元素获取文件,那么如何对base64进行编码。我还提到了其他示例,但这对于您的场景来说应该已经足够了。谢谢