在任务窗格应用程序/office.js 中检索整个 Word 文档

dno*_*ord 2 ms-office openxml apps-for-office

在 Word 2013(桌面)和 office.js 中,我们看到一些围绕用户选择 ( GetSelectedDataAsync, SetSelectedDataAsync) 的功能,但没有任何功能可以让您查看整个 (OpenXML) 文档。我错过了什么吗?

Ale*_*éau 5

Office.context.document.getFileAsync 将让您以 3 种格式选择获取整个文档:

  • 压缩:以字节数组的形式返回 Office Open XML (OOXML) 格式的整个文档(.pptx 或 .docx)
  • pdf : 以 PDF 格式返回整个文档作为字节数组
  • text:仅以字符串形式返回文档的文本。(只字)

这是来自MSDN的示例:

var i = 0;
var slices = 0;

function getDocumentAsPDF() {

    Office.context.document.getFileAsync("pdf", { sliceSize: 2097152 }, function (result) {
        if (result.status == "succeeded") {
            // If the getFileAsync call succeeded, then
            // result.value will return a valid File Object.
            myFile = result.value;
            slices = myFile.sliceCount;
            document.getElementById("result").innerText = " File size:" + myFile.size + " #Slices: " + slices;

            // Iterate over the file slices.
            for (i = 0; i < slices; i++) {
                var slice = myFile.getSliceAsync(i, function (result) {
                    if (result.status == "succeeded") {
                        doSomethingWithChunk(result.value.data);
                        if (slices == i) // Means it's done traversing...
                        {
                            SendFileComplete();
                        }
                    }
                    else
                        document.getElementById("result").innerText = result.error.message;
                });
            }
            myFile.closeAsync();
        }
        else
            document.getElementById("result2").innerText = result.error.message;
    });
}
Run Code Online (Sandbox Code Playgroud)