2015-03-10 8 views
0

Как проверить конкретный тип файла/расширение файла несохраненного файла в Word/Powerpoint при использовании Javascript API (Office.js, версия 1.1) ,Как проверить конкретное расширение файла несохраненного файла с помощью office.js

Я знаю, как я мог бы получить URL (с расширением) сохраненного файла:

Office.context.document.getFilePropertiesAsync(...); 

Но для не сохраненного файла, возвращаемый URL пуст.

+0

URL-адрес будет указывать на файл, нет? Пока презентация не будет сохранена, нет файла, поэтому я не вижу, как будет URL, отличный от пустого. И пока файл не будет сохранен, также нет типа файла. –

+0

Но можно получить несохраненное filecontent через API. Единственное, что мне нужно знать, это тип файла. Кроме того, существуют версии с URL-адресом файла. (Открыть Word, показать taskpane-приложение, сохранить как * odt, вызвать api, чтобы получить URL-адрес (имя файла + ext), вызвать api для получения содержимого -> имя файла «file.odt», но контент по-прежнему docx. Достаточно API для получения привязки HOST (Word oder Powerpoint). –

+0

Не может быть никакого типа файла до тех пор, пока не появится файл. Несохраненный контент приложения может быть сохранен в любом из полудюжины различных типов файлов, если не больше. –

ответ

1

Я закончил, создав несколько manifest.xml и создав параметр url для правильного расширения.

Теперь мне удалось разделить разные типы файлов.

Вместо office.manifest.xml я сделал word.manifest.xml excel.manifest.xml и powerpoint.manifest.xml

Они почти идентичны:

<Capabilities> 
    <Capability Name="Document"/> 
</Capabilities> 
<DefaultSettings> 
    <SourceLocation DefaultValue="http://myserver.com/myapp.html?filetype=docx"/> 
</DefaultSettings> 

Они отличаются только возможностью и параметра типа файла.

Update:

Существует также запрос-параметров от самого Управления _host_Info, этот параметр содержит необходимую информацию, но она не была документирована. Я не уверен, что он должен быть частью API.

+0

Мы оцениваем добавление API для обнаружения хоста («Excel, Word, Outlook и т. Д.») И информации о платформе (Desktop, Mac, Web и т. Д.). Чтобы убедиться, что мы учитываем это, могу ли я правильно понять, что вам нужен только хост в этом конкретном случае, а не платформа? Можете ли вы представить себе реальный сценарий, в котором вы * будете нуждаться в платформе (я могу подумать о некоторых, но я хочу оценить, насколько вероятны люди на самом деле чтобы использовать его в реальном мире) . –

+0

Мой сценарий - система управления документами. Мы внедряем одно и то же приложение во все три хоста (для Outlook мы придерживаемся другого подхода). Мы хотим предложить способ хранения открытого файла в нашей системе, поэтому мне нужен конкретный тип файла. Но способ получить ошибку в файле filetype для не защищенных файлов или файлов, которые хранятся в * .odf not * .doxc. (в Word 2013 вы получите file.odf, но содержимое - docx. В Office 2016 я получаю file.odf с odf-content.) Я не могу сохранить файл на своем сервере из-за неправильного расширения. Мне нужно было знать, какое расширение добавить. –

+0

Но ответ на ваш вопрос: прямо сейчас, я бы не стал знать ни на платформе, ни на хосте, если бы API работал с функцией обнаружения. То, что мне действительно понадобится, - это интеграция в интерфейс хоста, такой как contextmenu или или ленты (для интеграции моих действий) или запуск, если файл сохранен, для обновления файла в моем бэкэнд. Не стесняйтесь обращаться ко мне за дополнительной информацией о моем приложении или необходимых API. –