XCellRange
Интерфейс XCellRange предоставляет методы для доступа к отдельным ячейкам или диапазонам ячеек.
Получение интерфейса XCellRange:
Reference<XCellRange> xSheet(xSheetIA->getByIndex(0), UNO_QUERY_THROW);
- xSheetIA - объект ссылающийся на интерфейс XIndexAccess, для доступа к элементам по индексу
- getByIndex(0) - метод интерфейса XIndexAccess, используется для получения объекта листа с индексом 0
- UNO_QUERY_TYPE - тип запроса интерфейса (). Описание всех типов запроса: https://support.almi-partner.ru/#knowledge_base/1/locale/ru/answer/105
Пример использования:
// Получаем первый лист книги
Reference<XIndexAccess> xSheetIA(xSheets, UNO_QUERY_THROW);
Reference<XCellRange> xSheet(xSheetIA->getByIndex(0), UNO_QUERY_THROW);
// Получаем диапазон ячеек, начинающийся с A1 и заканчивающийся C3
Reference<XCellRange> xCellRange = xSheet->getCellRangeByName("A1:C3");
// Устанавливаем значения в ячейки диапазона
Reference<XCell> xCellA1 = xCellRange->getCellByPosition(0, 0);
xCellA1->setFormula("Hello");
Reference<XCell> xCellB1 = xCellRange->getCellByPosition(1, 0);
xCellB1->setFormula("World");
Методы интерфейса XCellRange:
- getCellByPosition(nColumn, nRow) - этот метод возвращает отдельную ячейку в пределах диапазона ячеек.
Параметры:
- long nColumn - индекс столбца ячейки в пределах диапазона.
- long nRow - индекс строки ячейки в пределах диапазона.
Возвращаемое значение: XCell
Исключения:
- com::sun::star::lang::IndexOutOfBoundsException, если индекс находится за пределами диапазона
- getCellRangeByName(aRange) - возвращает поддиапазон ячеек внутри диапазона. Поддиапазон указывается по имени. Формат имени диапазона зависит от контекста таблицы. В электронных таблицах допустимыми именами являются "A1:C5", "$B$2" или имена, определенные для диапазонов ячеек, такие как "MySpecialCell".
- string aRange - имя поддиапазона
Возвращаемое значение: XCellRange
- getCellRangeByPosition(nLeft, nTop, nRight, nBottom) - возвращает поддиапазон ячеек внутри указанного диапазона.
Параметры:
- long nLeft - индекс столбца первой ячейки в диапазоне
- long nTop - индекс строки первой ячейки в диапазоне
- long nRight - индекс столбца последней ячейки в диапазоне
- long nBottom - индекс строки последней ячейки в диапазоне
Возвращаемое значение: XCellRange
Исключения:
- com::sun::star::lang::IndexOutOfBoundsException, если индекс находится за пределами размеров этого диапазона
Ниже прикреплен пример кода на языке C++ и C#, который демонстрирует получение доступа к ячейкам по имени и положению.