【问题标题】:Is it possible to insert a base64 Word file using Office 2013 office api是否可以使用 Office 2013 office api 插入 base64 Word 文件
【发布时间】:2017-04-27 10:37:21
【问题描述】:

我有一个成功运行的脚本,它从 SharePoint 加载 Word 文件并将它们插入 Word 2017(Office 365 Word 本地客户端,不在线) 当前脚本使用 Ajax 读取文件并提取 base64 文件并使用

body.insertFileFromBase64(myBase64, end)

我现在需要扩展功能以支持 Word 2013(即使用 Office.js 而不是 Word JavaScript api)。所以代码改成了

Office.context.document.setSelectedDataAsync(file, someCoercionType)

我希望能够使用

的变体

Office.context.document.setSelectedDataAsync(myBase64, {coercionType: Office.CoercionType.Ooxml}, function (

但我收到一条错误消息“指定数据对象的格式无效”,这是正确的,因为 Office API 假定 base64 文件是图像。

是否可以在 JavaScript 中将 Base64 文件转换为 XML?(在我的代码的其他地方,我解压缩 docx 并提取书签,但仅从缺少所有格式和图像、页脚的 document.xml等等)

【问题讨论】:

    标签: javascript office-js


    【解决方案1】:

    Base64 只是一种二进制编码,完全不知道底层的内容类型。因此,如果您的源内容是 OOXML,则对其进行解码会返回该 OOXML。你不能做的是类型转换。例如,Base64 编码的 JPEG 不能直接解码为 BMP。为此,您需要先解码,然后使用其他工具从 JPEG 转换为 BMP。

    如果您正在寻求操作或提取现有文档的内容,您可能需要查看Aspose.Words。 Aspose 提供了允许您以编程方式处理 Word 文档的工具(它们也有用于其他文件类型的类似工具)。使用它,您可以提取您正在寻找的 OOXML,然后您可以使用 Office.js 将其插入 Word。

    目前,唯一接受 Base64 编码内容的强制类型是 Office.CoercionType.Image

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多