Предпосылки: Я разрабатываю надстройку Excel с использованием библиотеки Office JS. Надстройка использует компоненты ReactJS и Office Fabri c UI . Надстройка успешно создана, и с помощью библиотеки Office JS мы можем перенести выбор пользователя на лист Excel.
Проблема: Проблема в том, что я хочу получить событие в Office JS для сохранения листа с использованием встроенных возможностей Excel, т.е. когда пользователь нажимает кнопку «Сохранить», появляется диалоговое окно «Сохранить» (в соответствии с исходным поведением в Excel), и при этом я хочу вызвать свои бизнес-правила ReactJS (некоторые функции ). Для этого я хочу использовать событие Save для того же самого в Office JS, которое должно запускаться автоматически.
Пример кода:
Office.initialize = () => {
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getItem("Sheet1");
context.workbook.load(["save"]);
context.sync().then(() => {
context.workbook.save(Excel.SaveBehavior.prompt);
//OR
context.workbook.save(Excel.SaveBehavior.save);
});
}).catch(function(error) {
console.log(error.debugInfo);
});
}
Исследование: Две указанные выше функции, которые я пробовал, взяты из Документации Microsoft , где они указаны как:
Workbook.save сохраняет книгу в постоянное хранилище. Метод сохранения принимает единственный необязательный параметр saveBehavior, который может принимать одно из следующих значений:
Excel.SaveBehavior.save (по умолчанию): Файл сохраняется без запроса пользователя на указание имя файла и место сохранения. Если файл ранее не сохранялся, он сохраняется в папку по умолчанию. Если файл был сохранен ранее, он сохраняется в том же месте. Excel.SaveBehavior.prompt: Если файл не был сохранен ранее, пользователю будет предложено указать имя файла и место сохранения. Если файл был сохранен ранее, он будет сохранен в том же месте, и пользователю не будет предложено.
Конфигурации системы: Я использую Windows 10, Настольная версия Excel 2016 и онлайн-версия Office 365. Я использую IE -10 и Google Chrome для онлайн-версии Excel. Кроме того, я проверил то же самое, используя Windows -7 и Excel-2016 и те же браузеры.
Сообщите мне, может ли быть достигнута вышеуказанная функциональность?