From 01c4c2e4f4574335d4fa0eb1ec1d7123f61cda4a Mon Sep 17 00:00:00 2001 From: Debao Zhang Date: Wed, 8 Jan 2014 16:18:39 +0800 Subject: [PATCH] Export mergedCells API --- examples/xlsx/xlsxwidget/main.cpp | 8 ++++++-- src/xlsx/xlsxworksheet.cpp | 10 ++++++++++ src/xlsx/xlsxworksheet.h | 1 + 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/examples/xlsx/xlsxwidget/main.cpp b/examples/xlsx/xlsxwidget/main.cpp index a5e6a65..9d339c2 100644 --- a/examples/xlsx/xlsxwidget/main.cpp +++ b/examples/xlsx/xlsxwidget/main.cpp @@ -1,5 +1,7 @@ #include #include "xlsxdocument.h" +#include "xlsxworksheet.h" +#include "xlsxcellrange.h" #include "xlsxsheetmodel.h" using namespace QXlsx; @@ -23,9 +25,11 @@ int main(int argc, char **argv) //![2] Document xlsx(filePath); foreach (QString sheetName, xlsx.worksheetNames()) { + Worksheet *sheet = xlsx.worksheet(sheetName); QTableView *view = new QTableView(&tabWidget); - SheetModel *model = new SheetModel(xlsx.worksheet(sheetName), view); - view->setModel(model); + view->setModel(new SheetModel(sheet, view)); + foreach (CellRange range, sheet->mergedCells()) + view->setSpan(range.firstRow()-1, range.firstColumn()-1, range.rowCount(), range.columnCount()); tabWidget.addTab(view, sheetName); } //![2] diff --git a/src/xlsx/xlsxworksheet.cpp b/src/xlsx/xlsxworksheet.cpp index a318f66..c5a7c67 100755 --- a/src/xlsx/xlsxworksheet.cpp +++ b/src/xlsx/xlsxworksheet.cpp @@ -1122,6 +1122,16 @@ int Worksheet::unmergeCells(const QString &range) return unmergeCells(CellRange(cell1.x(), cell1.y(), cell2.x(), cell2.y())); } + +/*! + Returns all the merged cells +*/ +QList Worksheet::mergedCells() const +{ + Q_D(const Worksheet); + return d->merges; +} + void Worksheet::saveToXmlFile(QIODevice *device) const { Q_D(const Worksheet); diff --git a/src/xlsx/xlsxworksheet.h b/src/xlsx/xlsxworksheet.h index 7a34868..e0b35fe 100755 --- a/src/xlsx/xlsxworksheet.h +++ b/src/xlsx/xlsxworksheet.h @@ -96,6 +96,7 @@ public: int mergeCells(const CellRange &range, const Format &format=Format()); int unmergeCells(const QString &range); int unmergeCells(const CellRange &range); + QList mergedCells() const; bool setRow(int row, double height, const Format &format=Format(), bool hidden=false); bool setColumn(int colFirst, int colLast, double width, const Format &format=Format(), bool hidden=false);