Excel js API - отображение ячейки при вызове Range.Select () - PullRequest
0 голосов
/ 18 апреля 2020

Я использую Office. js в javascript Надстройке Office. В Desktop Excel 365 (версия 2003, сборка 12624.20382), когда ячейка выбрана с помощью js, она получает фокус, но не отображается для пользователя, рабочий лист не прокручивается до выбранной ячейки.

Excel.run(async function (ctx) {
    var Sheet;
    var Tbl;
    var BodyRange;

    Sheet = ctx.workbook.worksheets.getItem('sheetName');
    Tbl = Sheet.tables.getItem('tableName');
    BodyRange = Tbl.getDataBodyRange();
    BodyRange.getCell(0,0).select();

    await ctx.sync(); 
}); 

Эта проблема была поднята два года go в Office 2016, но она так и не пришла к выводу.

Есть идеи?

Спасибо

Ответы [ 3 ]

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

Я только что попробовал версию 2005, сборка 12813.20000, я не могу воспроизвести на моей стороне. Я попробовал ваш код с таргетингом на таблицу вне текущего представления. Выбранный диапазон может появиться в представлении после выполнения.

Кажется, ваша версия всего на 2 месяца отстает от моей, возможно ли вам обновить Excel?

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

Я решил это.

По сути, моя процедура выбора и заполнения таблицы Excel, а затем выберите первую ячейку; в качестве первых инструкций я установил эти свойства для ускорения, а затем заполнил таблицу и выбрал ячейку:

        ctx.application.suspendApiCalculationUntilNextSync();
        ctx.application.suspendScreenUpdatingUntilNextSync();
        ctx.runtime.enableEvents = false;

Поскольку обновление экрана установлено в значение false до следующей синхронизации c, ячейка выбрана, но представление не меняется.

Я решил проблему с синхронизацией контекста после заполнения таблицы, а затем выбрал ячейку.

Спасибо всем

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

Я попробовал вашу сущность в Excel Desktop версии 2004 (сборка 12730.20150), range.select() прокручивает до выбранной ячейки.

Я также попробовал Excel Ma c (версия 16.36) и Excel Online, все 3 платформы работают должным образом.

Это короткий экран:

enter image description here

Это суть, которую я использую https://gist.github.com/lumine2008/430c2b51cb7fecd2d70676f2b4c6c136

Я думаю, мы могли бы сделать 2 вещи:

  • Не могли бы вы попробовать мою суть в вашу сторону и посмотреть, если вы можете повторить этот вопрос?
  • Не могли бы вы прислать суть мне, я могу проверить в мою сторону.
...