Интерфейсы для работы со столбцами и строками таблицы

В данной статье рассмотрены интерфейсы позволяющие вставлять/удалять строки и столбы в таблице AText и ACell. Несмотря на то, что интерфейсы для вставки/удаления подходят для работы с таблицами как в AText, так и в ACell, интерфейсы для доступа к объектам строк и столбцов отличаются.


XTableRows


Интерфейс XTableRows предоставляет методы для вставки и удаления строк.

Пример использования XTableRows:

//Получаем объект документа
Reference<XTextDocument> xDoc(xComponent, UNO_QUERY);
//Получаем объект текста
Reference<XText> xText(xDoc->getText(), UNO_QUERY_THROW);
// Получаем все таблицы в документе AText
Reference<XTextTablesSupplier> xTablesSupplier(xDoc, UNO_QUERY_THROW);
Reference<XIndexAccess> xIA(xTablesSupplier->getTextTables(), UNO_QUERY);
//Получаем объект таблицы с индексом 0
//Интерфейс XTextTable рассмотрен в этой статье - https://support.almi-partner.ru/#knowledge_base/1/locale/ru/answer/119
Reference<XTextTable>xTable(xIA->getByIndex(0), UNO_QUERY);
//Получаем объект строк таблицы
Reference<XTableRows> xTR = xTable->getRows();
//Вставляем 5 строк
xTR->insertByIndex(0, 5);

Методы интерфейса XTableRows:


  • insertByIndex(nIndex, nCount) - Вставляет строки.
Параметры:
  • long nIndex - индекс новой вставляемой строки.
  • long nCount - количество вставляемых строк.
Возвращаемое значение: void

  • removeByIndex(nIndex, nCount) - Удаляет строки.
Параметры:
  • long nIndex - индекс удаляемой  строки.
  • long nCount - количество удаляемых строк.
Возвращаемое значение: void

XTableColumns


Интерфейс XTableColumns предоставляет методы для вставки и удаления столбцов.

Пример использования XTableColumns:

//Получаем объект листа с индексом 0

Reference<XCellRange> xSheet(xSheetIA->getByIndex(0), UNO_QUERY_THROW);

//Получаем объект XColumnRowRange для доступа к столбцам таблицы

//Интерфейс XColumnRowRange рассмотрен в этой статье - https://support.almi-partner.ru/#knowledge_base/1/locale/ru/answer/126

Reference<XColumnRowRange> xCRRange(xSheet, UNO_QUERY_THROW);

//Получаем объект столбцов листа ACell

Reference<XTableColumns>xColumns(xCRRange->getColumns(), UNO_QUERY_THROW);

//Вставляем два столбца на 0 индекс

xColumns->insertByIndex(0, 2);



Методы интерфейса XTableColumns:


  • insertByIndex(nIndex, nCount) - Вставляет столбцы.
Параметры:
  • long nIndex - индекс нового вставляемого столбца.
  • long nCount - количество вставляемых столбцов.
Возвращаемое значение: void

  • removeByIndex(nIndex, nCount) - Удаляет столбцы.
Параметры:
  • long nIndex - индекс удаляемого  столбца.
  • long nCount - количество удаляемых столбцов.
Возвращаемое значение: void
Прикреплённые файлы
insert_rows_in_acell.cpp
404kb
remove_columns_in_table_atext.cpp
404kb