From a1e53218bb2076478951e5a3124c0cccdc90ab1c Mon Sep 17 00:00:00 2001 From: Debao Zhang Date: Thu, 27 Feb 2014 16:21:57 +0800 Subject: [PATCH] Don't create the default "Sheet1" worksheet Unless the user want to access it, or the user want to save an empty workbook. --- examples/xlsx/demo/main.cpp | 4 ++-- src/xlsx/xlsxdocument.cpp | 3 --- src/xlsx/xlsxworkbook.cpp | 4 ++++ tests/auto/document/tst_documenttest.cpp | 3 +++ 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/examples/xlsx/demo/main.cpp b/examples/xlsx/demo/main.cpp index 170f698..b595d16 100644 --- a/examples/xlsx/demo/main.cpp +++ b/examples/xlsx/demo/main.cpp @@ -93,8 +93,8 @@ int main() Document xlsx; //--------------------------------------------------------------- - //The default sheet is "Sheet1" - xlsx.renameSheet("Sheet1", "Aligns & Borders"); + //Create the first sheet (Otherwise, default "Sheet1" will be created) + xlsx.addSheet("Aligns & Borders"); xlsx.setColumn("B", "B", 20); xlsx.setColumn("H", "H", 12); xlsx.currentWorksheet()->setGridLinesVisible(false); diff --git a/src/xlsx/xlsxdocument.cpp b/src/xlsx/xlsxdocument.cpp index c08af12..2701a0e 100644 --- a/src/xlsx/xlsxdocument.cpp +++ b/src/xlsx/xlsxdocument.cpp @@ -96,9 +96,6 @@ void DocumentPrivate::init() if (workbook.isNull()) workbook = QSharedPointer(new Workbook(Workbook::F_NewFromScratch)); - - if (workbook->sheetCount() == 0) - workbook->addSheet(); } bool DocumentPrivate::loadPackage(QIODevice *device) diff --git a/src/xlsx/xlsxworkbook.cpp b/src/xlsx/xlsxworkbook.cpp index 7d9d574..3dfe03b 100755 --- a/src/xlsx/xlsxworkbook.cpp +++ b/src/xlsx/xlsxworkbook.cpp @@ -255,6 +255,8 @@ AbstractSheet *Workbook::insertSheet(int index, const QString &name, AbstractShe AbstractSheet *Workbook::activeSheet() const { Q_D(const Workbook); + if (d->sheets.isEmpty()) + const_cast(this)->addSheet(); return d->sheets[d->activesheetIndex].data(); } @@ -426,6 +428,8 @@ void Workbook::saveToXmlFile(QIODevice *device) const { Q_D(const Workbook); d->relationships->clear(); + if (d->sheets.isEmpty()) + const_cast(this)->addSheet(); QXmlStreamWriter writer(device); diff --git a/tests/auto/document/tst_documenttest.cpp b/tests/auto/document/tst_documenttest.cpp index 8163256..d1a8217 100644 --- a/tests/auto/document/tst_documenttest.cpp +++ b/tests/auto/document/tst_documenttest.cpp @@ -308,6 +308,7 @@ void DocumentTest::testReadWriteTime() void DocumentTest::testMoveWorksheet() { Document xlsx1; + xlsx1.addSheet();//Sheet1 xlsx1.addSheet(); QCOMPARE(xlsx1.sheetNames(), QStringList()<<"Sheet1"<<"Sheet2"); @@ -320,6 +321,7 @@ void DocumentTest::testMoveWorksheet() void DocumentTest::testCopyWorksheet() { Document xlsx1; + xlsx1.addSheet();//Sheet1 xlsx1.addSheet(); xlsx1.write("A1", "String"); xlsx1.write("A2", 999); @@ -342,6 +344,7 @@ void DocumentTest::testCopyWorksheet() void DocumentTest::testDeleteWorksheet() { Document xlsx1; + xlsx1.addSheet();//Sheet1 xlsx1.addSheet(); xlsx1.addSheet();