В данной статье рассмотрены интерфейсы позволяющие вставлять/удалять строки и столбы в таблице 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