diff --git a/examples/xlsx/hello/main.cpp b/examples/xlsx/hello/main.cpp index f0a7d78..c2bb10d 100755 --- a/examples/xlsx/hello/main.cpp +++ b/examples/xlsx/hello/main.cpp @@ -19,5 +19,9 @@ int main() xlsx.save(); //![2] + QXlsx::Document xlsx2; + xlsx2.addWorksheet(); + xlsx2.saveAs("Book2.xlsx"); + return 0; } diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index 3d711b2..38b732a 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -6,6 +6,6 @@ SUBDIRS=\ relationships \ propscore \ propsapp \ - readdocument \ + document \ sharedstrings \ styles diff --git a/tests/auto/readdocument/readdocument.pro b/tests/auto/document/document.pro similarity index 56% rename from tests/auto/readdocument/readdocument.pro rename to tests/auto/document/document.pro index 238276e..a966954 100644 --- a/tests/auto/readdocument/readdocument.pro +++ b/tests/auto/document/document.pro @@ -1,13 +1,13 @@ -QT += testlib xlsx xlsx-private +QT += testlib xlsx # xlsx-private CONFIG += testcase DEFINES += XLSX_TEST -TARGET = tst_readdocumenttest +TARGET = tst_document CONFIG += console CONFIG -= app_bundle TEMPLATE = app -SOURCES += tst_readdocumenttest.cpp +SOURCES += tst_documenttest.cpp DEFINES += SRCDIR=\\\"$$PWD/\\\" diff --git a/tests/auto/document/tst_documenttest.cpp b/tests/auto/document/tst_documenttest.cpp new file mode 100644 index 0000000..37ab5dc --- /dev/null +++ b/tests/auto/document/tst_documenttest.cpp @@ -0,0 +1,161 @@ +#include "xlsxdocument.h" +#include "xlsxcell.h" +#include "xlsxformat.h" +#include +#include + +QTXLSX_USE_NAMESPACE + +class DocumentTest : public QObject +{ + Q_OBJECT + +public: + DocumentTest(); + +private Q_SLOTS: + void testDocumentProperty(); + void testReadWriteString(); + void testReadWriteNumeric(); + void testReadWriteBool(); + void testReadWriteBlank(); + void testReadWriteFormula(); +}; + +DocumentTest::DocumentTest() +{ +} + +void DocumentTest::testDocumentProperty() +{ + Document xlsx1; + xlsx1.setDocumentProperty("creator", "Debao"); + xlsx1.setDocumentProperty("company", "Test"); + xlsx1.saveAs("test.xlsx"); + + Document xlsx2("test.xlsx"); + QCOMPARE(xlsx2.documentProperty("creator"), QString("Debao")); + QCOMPARE(xlsx2.documentProperty("company"), QString("Test")); + + QFile::remove("test.xlsx"); +} + +void DocumentTest::testReadWriteString() +{ + Document xlsx1; + xlsx1.write("A1", "Hello Qt!"); + Format *format = xlsx1.createFormat(); + format->setFontColor(Qt::blue); + format->setBorderStyle(Format::BorderDashDotDot); + format->setFillPattern(Format::PatternSolid); + xlsx1.write("A2", "Hello Qt again!", format); + xlsx1.saveAs("test.xlsx"); + + Document xlsx2("test.xlsx"); + QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::String); + QCOMPARE(xlsx2.cellAt("A1")->value().toString(), QString("Hello Qt!")); + QCOMPARE(xlsx2.cellAt("A2")->dataType(), Cell::String); + QCOMPARE(xlsx2.cellAt("A2")->value().toString(), QString("Hello Qt again!")); + QVERIFY(xlsx2.cellAt("A2")->format()!=0); + QCOMPARE(*xlsx2.cellAt("A2")->format(), *format); + + QFile::remove("test.xlsx"); +} + +void DocumentTest::testReadWriteNumeric() +{ + Document xlsx1; + xlsx1.write("A1", 123); + Format *format = xlsx1.createFormat(); + format->setFontColor(Qt::blue); + format->setBorderStyle(Format::BorderDashDotDot); + format->setFillPattern(Format::PatternSolid); + format->setNumberFormatIndex(10); + xlsx1.write("A2", 12345, format); + xlsx1.saveAs("test.xlsx"); + + Document xlsx2("test.xlsx"); + QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Numeric); + QCOMPARE(xlsx2.cellAt("A1")->value().toDouble(), 123.0); + QCOMPARE(xlsx2.cellAt("A2")->dataType(), Cell::Numeric); + QCOMPARE(xlsx2.cellAt("A2")->value().toDouble(), 12345.0); + QVERIFY(xlsx2.cellAt("A2")->format()!=0); + QCOMPARE(*xlsx2.cellAt("A2")->format(), *format); + + QFile::remove("test.xlsx"); +} + +void DocumentTest::testReadWriteBool() +{ + Document xlsx1; + xlsx1.write("A1", true); + Format *format = xlsx1.createFormat(); + format->setFontColor(Qt::blue); + format->setBorderStyle(Format::BorderDashDotDot); + format->setFillPattern(Format::PatternSolid); + xlsx1.write("A2", false, format); + xlsx1.saveAs("test.xlsx"); + + Document xlsx2("test.xlsx"); + QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Boolean); + QCOMPARE(xlsx2.cellAt("A1")->value().toBool(), true); + QCOMPARE(xlsx2.cellAt("A2")->dataType(), Cell::Boolean); + QCOMPARE(xlsx2.cellAt("A2")->value().toBool(), false); + QVERIFY(xlsx2.cellAt("A2")->format()!=0); + QCOMPARE(*xlsx2.cellAt("A2")->format(), *format); + + QFile::remove("test.xlsx"); +} + +void DocumentTest::testReadWriteBlank() +{ + Document xlsx1; + xlsx1.write("A1", QVariant()); + Format *format = xlsx1.createFormat(); + format->setFontColor(Qt::blue); + format->setBorderStyle(Format::BorderDashDotDot); + format->setFillPattern(Format::PatternSolid); + xlsx1.write("A2", QVariant(), format); + xlsx1.saveAs("test.xlsx"); + + Document xlsx2("test.xlsx"); + QVERIFY(xlsx2.cellAt("A1")); + QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Blank); + QVERIFY(!xlsx2.cellAt("A1")->value().isValid()); + QVERIFY(xlsx2.cellAt("A2")); + QCOMPARE(xlsx2.cellAt("A2")->dataType(), Cell::Blank); + QVERIFY(!xlsx2.cellAt("A2")->value().isValid()); + QVERIFY(xlsx2.cellAt("A2")->format()!=0); + QCOMPARE(*xlsx2.cellAt("A2")->format(), *format); + + QFile::remove("test.xlsx"); +} + +void DocumentTest::testReadWriteFormula() +{ + Document xlsx1; + xlsx1.write("A1", "=11+22"); + Format *format = xlsx1.createFormat(); + format->setFontColor(Qt::blue); + format->setBorderStyle(Format::BorderDashDotDot); + format->setFillPattern(Format::PatternSolid); + xlsx1.write("A2", "=22+33", format); + xlsx1.saveAs("test.xlsx"); + + + Document xlsx2("test.xlsx"); + QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Formula); +// QCOMPARE(xlsx2.cellAt("A1")->value().toDouble(), 0.0); + QCOMPARE(xlsx2.cellAt("A1")->formula(), QStringLiteral("11+22")); + QCOMPARE(xlsx2.cellAt("A2")->dataType(), Cell::Formula); +// QCOMPARE(xlsx2.cellAt("A2")->value().toDouble(), 0.0); + QCOMPARE(xlsx2.cellAt("A2")->formula(), QStringLiteral("22+33")); + QVERIFY(xlsx2.cellAt("A2")->format()!=0); + QCOMPARE(*xlsx2.cellAt("A2")->format(), *format); + + QFile::remove("test.xlsx"); +} + +QTEST_APPLESS_MAIN(DocumentTest) + +#include "tst_documenttest.moc" diff --git a/tests/auto/readdocument/tst_readdocumenttest.cpp b/tests/auto/readdocument/tst_readdocumenttest.cpp deleted file mode 100644 index b3242af..0000000 --- a/tests/auto/readdocument/tst_readdocumenttest.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "xlsxdocument.h" -#include -#include - -class ReadDocumentTest : public QObject -{ - Q_OBJECT - -public: - ReadDocumentTest(); - -private Q_SLOTS: - void testDocProps(); -}; - -ReadDocumentTest::ReadDocumentTest() -{ -} - -void ReadDocumentTest::testDocProps() -{ - QXlsx::Document doc1; - doc1.setDocumentProperty("creator", "Debao"); - doc1.setDocumentProperty("company", "Test"); - doc1.saveAs("test.xlsx"); - - QXlsx::Document doc2("test.xlsx"); - QCOMPARE(doc2.documentProperty("creator"), QString("Debao")); - QCOMPARE(doc2.documentProperty("company"), QString("Test")); - - QFile::remove("test.xlsx"); -} - -QTEST_APPLESS_MAIN(ReadDocumentTest) - -#include "tst_readdocumenttest.moc"