Поделиться через


Установка и получение выбранного диапазона с помощью API JavaScript для Excel

В этой статье приведены примеры кода, которые задают и получают выбранный диапазон с помощью API JavaScript для Excel. Полный список свойств и методов, поддерживаемых объектом, см. в Rangeразделе Класс Excel.Range.

Примечание.

В API JavaScript для Excel нет объекта или класса Cell. Вместо этого API JavaScript для Excel определяет все ячейки Excel как объекты Range. Отдельные ячейки в пользовательском интерфейсе Excel преобразуются в объект Range с одной ячейкой в API JavaScript для Excel. Один объект Range также может содержать несколько смежных ячеек. Дополнительные сведения см. в статье Работа с ячейками с использованием API JavaScript для Excel.

Задание выделенного диапазона

В примере кода ниже показано, как выделить диапазон B2:E6 на активном листе.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getActiveWorksheet();
    let range = sheet.getRange("B2:E6");

    range.select();

    await context.sync();
});

Выделенный диапазон B2:E6

Выбранный диапазон в Excel.

Получение выделенного диапазона

Следующий пример кода получает выбранный диапазон, загружает его address свойство и записывает сообщение в консоль.

await Excel.run(async (context) => {
    let range = context.workbook.getSelectedRange();
    range.load("address");

    await context.sync();
    
    console.log(`The address of the selected range is "${range.address}"`);
});

Выбор края используемого диапазона

Методы Range.getRangeEdge и Range.getExtendedRange позволяют надстройке реплицировать поведение сочетаний клавиш, выбирая край используемого диапазона на основе выбранного диапазона. Дополнительные сведения об используемых диапазонах см. в статье Получение используемого диапазона.

На следующем снимке экрана используется таблица со значениями в каждой ячейке C5:F12. Пустые ячейки за пределами этой таблицы находятся за пределами используемого диапазона.

Таблица с данными из C5:F12 в Excel.

Выделите ячейку на краю текущего используемого диапазона.

В следующем примере кода показано, как использовать Range.getRangeEdge метод для выбора ячейки на самом далеком крае текущего используемого диапазона в направлении вверх. Это действие соответствует результату нажатияклавиши CTRL+ СТРЕЛКА ВВЕРХ при выборе диапазона.

await Excel.run(async (context) => {
    // Get the selected range.
    let range = context.workbook.getSelectedRange();

    // Specify the direction with the `KeyboardDirection` enum.
    let direction = Excel.KeyboardDirection.up;

    // Get the active cell in the workbook.
    let activeCell = context.workbook.getActiveCell();

    // Get the top-most cell of the current used range.
    // This method acts like the Ctrl+Up arrow key keyboard shortcut while a range is selected.
    let rangeEdge = range.getRangeEdge(
      direction,
      activeCell
    );
    rangeEdge.select();

    await context.sync();
});

Перед выделением ячейки на краю используемого диапазона

На следующем снимок экрана показан используемый диапазон и выбранный диапазон в пределах используемого диапазона. Используемый диапазон представляет собой таблицу с данными в формате C5:F12. В этой таблице выбран диапазон D8:E9 . Этот выбор является состоянием перед запуском Range.getRangeEdge метода .

Таблица с данными из C5:F12 в Excel. Выбран диапазон D8:E9.

После выбора ячейки на краю используемого диапазона

На следующем снимке экрана показана та же таблица, что и на предыдущем снимке экрана, с данными в диапазоне C5:F12. В этой таблице выбран диапазон D5 . Этот выбор выполняется после состояния после запуска Range.getRangeEdge метода для выбора ячейки на краю используемого диапазона в направлении вверх.

Таблица с данными из C5:F12 в Excel. Выбран диапазон D5.

Выделение всех ячеек из текущего диапазона до самого дальнего края используемого диапазона

В следующем примере кода показано, как использовать Range.getExtendedRange метод для выбора всех ячеек из текущего выбранного диапазона до самого дальнего края используемого диапазона в направлении вниз. Это действие соответствует результату использования сочетания клавиш CTRL+SHIFT+СТРЕЛКА ВНИЗ при выборе диапазона.

await Excel.run(async (context) => {
    // Get the selected range.
    let range = context.workbook.getSelectedRange();

    // Specify the direction with the `KeyboardDirection` enum.
    let direction = Excel.KeyboardDirection.down;

    // Get the active cell in the workbook.
    let activeCell = context.workbook.getActiveCell();

    // Get all the cells from the currently selected range to the bottom-most edge of the used range.
    // This method acts like the Ctrl+Shift+Down arrow key keyboard shortcut while a range is selected.
    let extendedRange = range.getExtendedRange(
      direction,
      activeCell
    );
    extendedRange.select();

    await context.sync();
});

Перед выделением всех ячеек из текущего диапазона до края используемого диапазона

На следующем снимок экрана показан используемый диапазон и выбранный диапазон в пределах используемого диапазона. Используемый диапазон представляет собой таблицу с данными в формате C5:F12. В этой таблице выбран диапазон D8:E9 . Этот выбор является состоянием перед запуском Range.getExtendedRange метода .

Таблица с данными из C5:F12 в Excel. Выбран диапазон D8:E9.

После выделения всех ячеек из текущего диапазона до края используемого диапазона

На следующем снимке экрана показана та же таблица, что и на предыдущем снимке экрана, с данными в диапазоне C5:F12. В этой таблице выбран диапазон D8:E12 . Этот выбор выполняется после состояния после выполнения Range.getExtendedRange метода для выбора всех ячеек из текущего диапазона до края используемого диапазона в направлении вниз.

Таблица с данными из C5:F12 в Excel. Выбран диапазон D8:E12.

См. также