javascript - Office 365 - 创建 *.docx | *.pptx | *.xlsx 文件

标签 javascript office365 onedrive

我正在开发一个 Web 项目,该项目使用 OneDrive API 进行文件管理。我想创建 *.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 是否与 Microsoft 有某种特殊合作来提供此类服务?

最佳答案

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

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

对于 Excel 和 PowerPoint,您需要执行类似的操作,方法是创建一个空文件,并在您的应用想要创建新的空文件时将其上传为"new"文件。但是,您无法将简单的 HTML 字符串存储为模板文件内容,而是需要新文件的实际二进制内容,该内容最多可达 30kb,具体取决于类型。

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

关于javascript - Office 365 - 创建 *.docx | *.pptx | *.xlsx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37153916/

相关文章:

javascript - 检查 ng-if 语句中的字符串值

azure - Office 365 v2 API 授权代码格式错误或无效

连接到 TFS 的 Excel TFS 加载项崩溃

c# - "DeferCommit was set to false for this upload session"错误

javascript - mongodb更新不会立即更新

javascript - 动态下拉菜单的高度为 0

ms-word - 如何使用 JavaScript API 在 Word 加载项中获取当前选择的父范围

JavaScript API 可以处理存储在 OneDrive 上的 Excel 文件吗?

web-applications - 与我的 onedrive 连接的应用程序列表

javascript - 在 AngularJS 中以 CSV、Excel、PDF 格式导出数据