Как мога да получа текущия Excel файл в Office JavaScript API?

Разработвам приложение за панел с раздели в Excel, което трябва да прочете текущия документ. В Word API на Office JavaScript има метода Office.context.document.getFileAsync(), но това не е налично в Excel.

Мога да получа URL адреса на документа с Office.context.document.getFileProperties() и тогава реших, че мога да прочета файла с това.

Опитах да използвам обекта HTML5 FileReader(), но това работи само за файлове, избрани от контролата за въвеждане на файлове. Опитах се да манипулирам контрола за въвеждане на скрит файл, така че автоматично да използва текущия документ, но JavaScript разбираемо ви пречи да направите това от съображения за сигурност. Бих могъл да помоля потребителя да прегледа документа, който използва в момента, но това би било лошо потребителско изживяване.

Така че се опитах да използвам ActiveXObject('Scripting.FileSystemObject'), но ActiveX изобщо не е разрешен в приложенията на панела с раздели, независимо от текущата настройка за защита в IE.

Какви други опции имам?


person Paul T Davies    schedule 21.05.2015    source източник
comment
искате ли да получите целия файл или само съдържанието?   -  person marcel    schedule 15.06.2015
comment
@marcel Това, от което всъщност се нуждая, е достъп до персонализираните свойства. Тъй като няма опция за това в Office.js, опитвам се да заредя целия файл, да го разархивирам и да прочета custom.xml.   -  person Paul T Davies    schedule 15.06.2015
comment
можете да получите достъп до имотите с Office.context.document.getFilePropertiesAsync([, options], callback);   -  person marcel    schedule 15.06.2015
comment
@marcel Това връща само URI. Изглежда, че е контейнер за бъдеща функционалност.   -  person Paul T Davies    schedule 15.06.2015
comment
@PaulTDavies намери ли някакво решение за този проблем?   -  person Bharat Khunti    schedule 26.03.2018
comment
@BharatKhunti Страхувам се, че не го направих. Office.context.document.getFileAsync() поддържа ли се сега?   -  person Paul T Davies    schedule 27.03.2018


Отговори (1)


Според пътната карта на API Office.context.document.getFileAsync() не е наличен в Excel в момента.

Не мисля, че е възможно с помощта на getFilePropertiesAsync(). Връща само URL адреса. Обикновено браузърът забранява на програмиста да докосва каквото и да е съдържание във файловата система. Следователно е трудно да се осъществи достъп до локалната файлова система в JavaScript код.

Освен това файлът може да не е в локалната файлова система. Например, може да се хоства в Onedrive или SharePoint. getFilePropertiesAsync() трябва да върне истинския си URL адрес в Onedrive/SharePoint, вместо в локалната файлова система.

Предполагам, че Microsoft ще поддържа getFileAsync() в бъдеще.

person Kejing Peng    schedule 17.06.2015
comment
Така че отговорът е, че за момента няма начин да го направите? Това със сигурност изглежда е моят опит. - person Paul T Davies; 18.06.2015