Office js добавьте / активируйте новый рабочий лист, добавьте GeneralException - PullRequest
2 голосов
/ 24 апреля 2020

Мы создаем надстройку Excel с помощью диалогового окна. Диалоговое окно доставит сообщение в родительскую или открывающую книгу. Файл функции будет вызывать простую функцию в качестве примера:

const populateTable = (officeMessage)=>{
      Excel.run(async context => {
        const workbook = context.workbook;
        const worksheets = workbook.worksheets;
        const sheet = worksheets.add();

        sheet.getCell(0,0).values = [[officeMessage]];

        await context.sync();

      }).then(()=>{
        showDialogEvent.completed();
        dialog.close();
      }).catch(handleError);
    }

Открыты два рабочих стола / рабочий стол Excel ( Excel1 и Excel2 ). Диалог открывается в Excel1 . Однако, если я сфокусируюсь на другой книге ( Excel2 ), прежде чем эта функция сработает. API Office js создаст новый лист в Excel2 вместо Excel1 , и будет выдано сообщение об ошибке, как показано ниже:

{"description":"There was an internal error while processing the request.","name":"RichApi.Error","code":"GeneralException","traceMessages":[],"innerError":null,"debugInfo":{"code":"GeneralException","message":"There was an internal error while processing the request.","errorLocation":"WorksheetCollection.add","statement":"var add=worksheets.add();","surroundingStatements":["var workbook=context.workbook;","var worksheets=workbook.worksheets;","// >>>>>","var add=worksheets.add();","// <<<<<","var cell=add.getCell(...);","// Instantiate {cell}","cell.values=...;"],"fullStatements":["Please enable config.extendedErrorLogging to see full statements."]},"stack":"GeneralException: There was an internal error while processing the request.\n at Anonymous function (https://appsforoffice.microsoft.com/lib/1.1/hosted/excel-win32-16.01.js:24:286584)\n at Anonymous function (https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js:1:822)"}

Примечание: Я пытался сохранить в памяти контекст первой книги в памяти и передать его в Excel.run , но это не так т работа.

Есть ли способ решить эту проблему?

1 Ответ

0 голосов
/ 24 апреля 2020

Спасибо @Ericl за ваш отчет. Это известная проблема, мы работаем над новой функцией (3743479), чтобы исправить эту проблему, был создан запрос uservoice , вы также можете отозвать этот запрос. Пожалуйста, прислушайтесь к этому голосу пользователя, мы будем держать в курсе, как только мы выпустим эту функцию

Обходное решение в настоящее время заставляет открыть другой экземпляр / процесс Excel для решения этой проблемы.

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