Установка и получение выбранного диапазона с помощью 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
Получение выделенного диапазона
Следующий пример кода получает выбранный диапазон, загружает его 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. Пустые ячейки за пределами этой таблицы находятся за пределами используемого диапазона.
Выделите ячейку на краю текущего используемого диапазона.
В следующем примере кода показано, как использовать 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. В этой таблице выбран диапазон D5 . Этот выбор выполняется после состояния после запуска Range.getRangeEdge
метода для выбора ячейки на краю используемого диапазона в направлении вверх.
Выделение всех ячеек из текущего диапазона до самого дальнего края используемого диапазона
В следующем примере кода показано, как использовать 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. В этой таблице выбран диапазон D8:E12 . Этот выбор выполняется после состояния после выполнения Range.getExtendedRange
метода для выбора всех ячеек из текущего диапазона до края используемого диапазона в направлении вниз.
См. также
Office Add-ins