2016-05-11 11 views
0

私はファイル管理の目的でOneDrive APIを使用するWebプロジェクトに取り組んでいます。私は* .docxを作成したかったのです。 * .pptx | * .xlsxファイルがありますが、残念ながら、OneDrive APIは空のファイルや新しいファイルの作成をサポートしていません。私が試みたのは、サーバーから空の/新しいファイルをOneDriveにアップロードすることでした。アップロードは正常に機能しますが、ファイルはOffice Onlineまたはローカルオフィスで開かれません。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には、このようなサービスを提供するMicrosoftとの特別な協力関係がありますか?

答えて

1

"空"のOfficeファイルは、実際には0バイトのファイルではありません。デスクトップOfficeアプリケーション(Excelを除く)は、0バイトのファイルをOfficeドキュメントにすることができます(ファイルをOfficeファイルにする「テンプレート」を挿入します)。オンラインのOfficeアプリでは、現在その作業をサポートしていません。

現在、特定のタイプの新しいファイルを作成するAPIがないため、回避する必要があります。これを行うには、Word、Excel、PowerPoint用の「テンプレート」ファイルを保存してアップロードする必要があります。ここで提供した例は、空のHTMLページを作成してアップロードしたWordでこれを行う方法の1つです。

ExcelとPowerPointの場合、空のファイルを作成し、新しい空のファイルを作成する場合はいつでも、新しいファイルとしてアップロードする必要があります。しかし、単純なHTML文字列をテンプレートファイルの内容として保存する代わりに、新しいファイルの実際のバイナリコンテンツが必要になります。新しいファイルのタイプに応じて〜30kbまで可能です。

私たちはウェブアプリケーションを改善し、0バイトのファイルを新しい文書に「変換」できるようにしていますが、それでも今日はバグです。

関連する問題