2016-05-11 73 views
0

我正在開發一個使用OneDrive API進行文件管理的Web項目。我想創建* .docx | * .pptx | * .xlsx文件,但不幸的是,沒有一個OneDrive API支持創建空白/新文件。我所嘗試的是將我的服務器上的空白/新文件上傳到OneDrive。雖然上傳工作正常,但該文件無法在Office Online或本地Office中打開。Office 365 - 創建* .docx | * .pptx | * .xlsx文件

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與微軟有一些特殊的合作來提供這樣的服務嗎?

回答

1

「空」Office文件不是真正的0字節文件。桌面Office應用程序(Excel除外)能夠獲取0字節文件並使其成爲Office文檔(插入使文件成爲Office文件的「模板」)。在線Office應用程序目前不支持這樣做。

由於目前沒有API創建特定類型的新文件,因此您需要解決該問題。爲此,您需要存儲和上傳Word,Excel和PowerPoint的「模板」文件。您提供的示例是爲Word執行此操作的一種方式,您在其中創建了一個空的HTML頁面並將其上載。

對於Excel和PowerPoint,您需要通過創建一個空文件並將其上傳爲「新」文件來創建一個新的空文件。但是,您不需要將簡單的HTML字符串存儲爲模板文件內容,而需要新文件的實際二進制內容,這取決於類型,最多可達30kb。

我們正在努力改進Web應用程序,以便他們可以將一個0字節的文件「轉換」成一個新文檔,但這仍然是一個錯誤。