У меня проблема с тем, что любая функция, которую я использую для кнопки, не работает + Я не знаю, как отлаживать команды Office.
Excel Version 1904 (build 11527.20004)
Когда я использую отладчик F12 и присоединяюсь к процессу IE для своего надстройки (панели задач), тогда, когда я нажимаю кнопку, я получаю необработанное исключение и запрашиваю присоединение отладчика. Если я сделаю это с моим VS 2017, я получит это:
Необработанное исключение в строке 18, столбец 27179 в
https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js
0x800a01b6 - Ошибка времени выполнения JavaScript: объект не поддерживает свойство
или метод 'фильтр' произошел
Что я сделал:
- манифест кажется правильным (проверка пройдена), он имеет все узлы, кнопки видны на ленте
- после включения исключения петли (я запускаю его на своем локальном хосте вместе с сервером IIS) ссылка на DesktopFunctionFile выглядит нормально, fiddler показывает, что он получен правильно
- для «ExecuteFunction» я использовал несколько функций, таких как
- Показать пользовательский диалог (ничего не происходит)
- Запишите некоторые данные в лист (ничего не происходит)
- любой используемый console.log нигде не отображается (я ожидал увидеть его в журнале выполнения).
- Я использую event.completed ();
Я вижу только «RibbonTest работает над тестом» в нижней части Excel при нажатии на кнопку «Тест». "RibbonTest" - это имя моего дополнения.
Я использовал этот пример в качестве основы для моего html 'FunctionFile' (только часть заголовка):
https://github.com/OfficeDev/Office-Add-in-Dialog-API-Simple-Example/blob/2304d66438323239eb81e61b734bd8b231cc4615/SimpleDialogSampleWeb/FunctionFile.html
<head>
<script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js" type="text/javascript"></script>
<script>
var clickEvent;
// The initialize function must be defined each time a new page is loaded
(function () {
Office.initialize = function (reason) {
// If you need to initialize something you can do so here.
};
})();
// Wrap the writeToDoc in showNotification because showNotification is called
// in DialogHelper.js but must be defined differently when the dialog is called
// from a task pane instead of a custom menu command.
function showNotification(event)
{
clickEvent = event;
writeToDoc();
//Required, call event.completed to let the platform know you are done processing.
clickEvent.completed();
}
function writeToDoc()
{
console.log("WriteToDoc.");
Excel.run(function (context) {
var sheet = context.workbook.worksheets.getActiveWorksheet();
var range = sheet.getRange("B2");
range.values = [[ 5 ]];
return context.sync();
});
}
</script>
</head>
Кто-нибудь знает, как отлаживать «Команды» в надстройках Office?
Любой совет для того, чтобы запустить это более чем приветствуется!
Благодаря.