2016-05-11 8 views
0

Я работаю над веб-проектом, который использует OneDrive API для управления файлами. Я хотел создать * .docx | * .pptx | * .xlsx, но, к сожалению, ни один из API OneDrive не поддерживает создание пустых/новых файлов. Я попытался загрузить пустой/новый файл с моего сервера в OneDrive. Хотя загрузка работает нормально, файл не открывается в Office Online или в местном Office.Офис 365 - Создать * .docx | * .pptx | * .xlsx files

От 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. Я начал изучать API Office 365, если есть что-то, что позволяет создавать вышеупомянутые файлы, но я не мог найти ничего подобного. (P.S: Я смотрю API REST) ​​

Еще одна вещь, которую я заметил, - это 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. Пример, который вы предоставили, - это один из способов сделать это для Word, где вы создали пустую HTML-страницу и загрузили ее.

Для Excel и PowerPoint вам нужно будет сделать что-то подобное, создав пустой файл и загрузив его как «новый» файл, когда ваше приложение захочет создать новый пустой файл. Однако вместо того, чтобы хранить простую строку HTML в качестве содержимого файла шаблона, вам понадобится фактический бинарный контент нового файла, который может быть до ~ 30 кбайт в зависимости от типа.

Мы работаем над улучшением веб-приложений, чтобы они могли принимать 0-байтовый файл и «конвертировать» его в новый документ, но сегодня это ошибка.

Смежные вопросы