我在办公室应用程序中使用以下代码解析Word文档
var currentSlice = currentFile.getSliceAsync(0, function (resultSlice) {
if (result.status == Office.AsyncResultStatus.Succeeded) {
//We got the file slice. Now we will encode the data and post to a service
var documentText = OSF.OUtil.encodeBase64(resultSlice.value);
// Open the document, which is stored as a base64 string.
var doc = new openXml.OpenXmlPackage(documentText);
}
}
这适用于Word 2013,但遵循
行OSF.OUtil.encodeBase64(resultSlice.value);
抛出异常
对象不支持属性或方法' charCodeAt'
在Word 2016上。
有什么可能的原因吗?
注意我使用了https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js
中的最新Office.js此致 Jhan Zaib
答案 0 :(得分:2)
OSF.OUtil.encodeBase64(resultSlice.value);旨在内部用于Office.js消费,它将不会像您期望的那样运行。它不仅仅是对base64的编码。有许多库(可用作免费软件),可以帮助您将getSliceAsync(二进制流)的结果编码为base64编码的字符串。