Office.js - OSF.OUtil.encodeBase64引发Word 2016异常

时间:2015-12-10 14:11:56

标签: office-js

我在办公室应用程序中使用以下代码解析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

1 个答案:

答案 0 :(得分:2)

OSF.OUtil.encodeBase64(resultSlice.value);旨在内部用于Office.js消费,它将不会像您期望的那样运行。它不仅仅是对base64的编码。有许多库(可用作免费软件),可以帮助您将getSliceAsync(二进制流)的结果编码为base64编码的字符串。