Диапазоны ячеек в ACell

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#, который демонстрирует получение доступа к ячейкам по имени и положению.
Прикреплённые файлы
for_linux.tar
404kb
get_cell_by_position_and_name.cpp
404kb
get_cell_by_position_and_name.cs
404kb