Могу ли я вызвать Excel.run () на странице, размещенной в диалоге Excel (с использованием технологии add-office office-js) - PullRequest
1 голос
/ 15 марта 2019

Я пишу дополнение Office-JS для Excel.

У меня есть код, работающий внутри html-страницы:

    Logger.Log(`about to call GetActiveSheetID`);
    Excel.run((context) => {
        const sheets: any = context.workbook.worksheets;
        const activeSheet: any = sheets.getActiveWorksheet();
        return context.sync().then(() => {
            Logger.Log(`GetActiveSheetID returns ${activeSheet.id}`);
        });
    }).catch((e) => {
        Logger.Log(e.message);
    });

В сторону: регистратор строчит в местном хранилище, чтобы его можно было прочитать обратно в другом месте, так как консоли отладчиков, кажется, не работают очень часто.

Когда я размещаю этот бит страницы javascript / html внутри диалогового окна (используя офисный диалог API ), я получаю следующие записи журнала:

2019-03-14T21:14:24.043Z    about to call GetActiveSheetID
2019-03-14T21:14:24.059Z    An internal error has occurred.

Когда я запускаю ту же самую страницу / код внутри панели задач, я получаю:

2019-03-14T21:14:47.162Z    about to call GetActiveSheetID
2019-03-14T21:14:47.185Z    GetActiveSheetID returns {00000000-0001-0000-0000-000000000000}

ПОЯВЛЯЕТСЯ, что Excel.run () не работает при размещении внутри офисного диалога? Поэтому диалоговое окно нельзя использовать для изменения данных электронной таблицы Excel.

1 Ответ

1 голос
/ 15 марта 2019

Боюсь, что единственными API Office.js, которые вы можете вызвать внутри диалога, являются isSetSupported и messageParent. Если вам нужны другие функции Office.js, вам нужно передать сигнал из диалогового окна с messageParent на родительскую страницу и вызвать нужные API-интерфейсы Office.js с родительской страницы.

Для получения дополнительной информации см. Dialog API .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...