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

Office 365 - Create *.docx | *.pptx | *.xlsx files

本文关键字:pptx xlsx 文件 docx 365- 创建 Office      更新时间:2023-09-26

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

从这个博客,我能够生成一个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做任何事情。我开始查看Office365 API,如果有任何东西可以创建上面提到的文件,但我找不到类似的东西。(附言:我在看REST API)

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

"Empty"Office文件并不是真正的0字节文件。桌面Office应用程序(Excel除外)能够获取0字节的文件,并使其成为Office文档(插入使文件成为Office文件的"模板")。联机Office应用程序当前不支持执行此操作。

由于目前没有API来创建特定类型的新文件,您需要解决此问题。为此,您需要存储并上载Word、Excel和PowerPoint的"模板"文件。您提供的例子是Word的一种方法,您创建了一个空的HTML页面并上传了它

对于Excel和PowerPoint,当您的应用程序想要创建一个新的空文件时,您需要创建一个空文件并将其作为"新"文件上传,从而完成类似的操作。然而,您需要的不是一个简单的HTML字符串作为模板文件内容,而是一个新文件的实际二进制内容,根据类型的不同,它可能高达30kb。

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