【问题标题】:Office 365 - Create *.docx | *.pptx | *.xlsx filesOffice 365 - 创建 *.docx | *.pptx | *.xlsx 文件
【发布时间】:2016-09-06 08:09:39
【问题描述】:

我正在开发一个使用 OneDrive API 进行文件管理的 Web 项目。我想创建 *.docx | *.pptx | *.xlsx 文件,但不幸的是,没有一个 OneDrive API 支持创建空/新文件。我尝试将一个空/新文件从我的服务器上传到 OneDrive。虽然上传工作正常,但文件无法在 Office Online 或本地 Office 中打开。

this blog,我能够生成一个Word文件并上传。

function createNewDoc(name) {
var htmlString = "<html><body></body></html>";
var byteNumbers = new Uint8Array(htmlString.length);

for (var i = 0; i < htmlString.length; i++) {
   byteNumbers[i] = htmlString.charCodeAt(i);
    }
    var blob = new Blob([byteNumbers], {type: "text/html"});
    socialAPI.uploadFile('windows', blob, 'name', 'folder.87ash7ashb7a2').then(function (resp) {
        console.log("response for uploading file", resp);
    })
}

此文件适用于 Word。但是,该方法不适用于 Excel 和 Powerpoint。

所以最终,我无法使用 OneDrive API 做任何事情。如果有任何东西可以创建上述文件,我开始查看 Office 365 API,但我找不到类似的东西。 (P.S:我在看 REST API)

我注意到的另一件事是 Box 能够做同样的事情并在一个窗口中打开它,但 url 的格式是 https://app.box.com/services/box_for_office_online。 Box 是否与微软有一些特殊的合作来提供这样的服务?

【问题讨论】:

    标签: javascript office365 onedrive


    【解决方案1】:

    “空”Office 文件并不是真正的 0 字节文件。桌面 Office 应用程序(Excel 除外)能够获取 0 字节文件并使其成为 Office 文档(插入使文件成为 Office 文件的“模板”)。在线 Office 应用目前不支持这样做。

    由于目前没有 API 可以创建特定类型的新文件,因此您需要解决它。为此,您需要为 Word、Excel 和 PowerPoint 存储和上传“模板”文件。您提供的示例是对 Word 执行此操作的一种方法,您在其中创建了一个空 HTML 页面并将其上传。

    对于 Excel 和 PowerPoint,您需要通过创建一个空文件并在您的应用想要创建新的空文件时将其作为“新”文件上传来执行类似的操作。但是,您不能将简单的 HTML 字符串存储为模板文件内容,而是需要新文件的实际二进制内容,根据类型的不同,该文件最多可达 ~30kb。

    我们正在努力改进 Web 应用程序,以便它们可以获取 0 字节文件并将其“转换”为新文档,但这在今天仍然是一个错误。

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-19
      • 1970-01-01
      相关资源
      最近更新 更多