Skip to main content

Метод CellRange::moveInto

Метод позволяет переносить (аналог Ctrl+X, Ctrl+V в редакторе таблиц) ячейки текущего диапазона в заданную позицию, представленную параметром типа CellRange. Вы можете переносить ячейки в пределах одного листа, а также между листами и документами.

Данный метод реализован только в табличных документах и позволяет работать только в рамках одного листа документа.

Пример (только для табличного документа)​


auto sourceRange = sheetList.getCellRange("A1:B2");
auto destRange = sheetList.getCellRange("C3:D4");
sourceRange.moveInto(destRange);

Пример перемещения ячеек между документами​


auto document1 = application.loadDocument("sheet1.xods");
auto document2 = application.loadDocument("sheet2.xods");
boost::optional<Document::Table> tableOpt1 = document1.getBlocks().getTable(0);
boost::optional<Document::Table> tableOpt2 = document2.getBlocks().getTable(0);
if (tableOpt1.has_value() && tableOpt2.has_value())
{
Document::Table sheetList1 = tableOpt1.get();
Document::Table sheetList2 = tableOpt2.get();
auto sourceRange = sheetList1.getCellRange("A1:B2");
auto destRange = sheetList2.getCellRange("C3:D4");
sourceRange.copyInto(destRange);
}

При перемещении ячеек в качестве новой позиции достаточно указать верхнюю левую ячейку нового диапазона, однако, при необходимости можно продублировать исходный блок ячеек в новом местоположении (см. подробности в разделе CellRange::CopyInto).

Дополнительный пример использования приведен в разделе Копирование ячеек в табличном документе.