|
|
@ -29,20 +29,25 @@ DocumentTest::DocumentTest() |
|
|
|
|
|
|
|
void DocumentTest::testDocumentProperty() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
xlsx1.setDocumentProperty("creator", "Debao"); |
|
|
|
xlsx1.setDocumentProperty("company", "Test"); |
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
QCOMPARE(xlsx2.documentProperty("creator"), QString("Debao")); |
|
|
|
QCOMPARE(xlsx2.documentProperty("company"), QString("Test")); |
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
} |
|
|
|
|
|
|
|
void DocumentTest::testReadWriteString() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
xlsx1.write("A1", "Hello Qt!"); |
|
|
|
Format format; |
|
|
@ -50,24 +55,26 @@ void DocumentTest::testReadWriteString() |
|
|
|
format.setBorderStyle(Format::BorderDashDotDot); |
|
|
|
format.setFillPattern(Format::PatternSolid); |
|
|
|
xlsx1.write("A2", "Hello Qt again!", format); |
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
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().isValid()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format().fontColor(), format.fontColor()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format().leftBorderStyle(), format.leftBorderStyle()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format().fillPattern(), format.fillPattern()); |
|
|
|
// QCOMPARE(xlsx2.cellAt("A2")->format(), format);
|
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
Format format2 = xlsx2.cellAt("A2")->format(); |
|
|
|
QVERIFY(format2.isValid()); |
|
|
|
// qDebug()<<format2;
|
|
|
|
// qDebug()<<format;
|
|
|
|
QCOMPARE(format2, format); |
|
|
|
} |
|
|
|
|
|
|
|
void DocumentTest::testReadWriteNumeric() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
xlsx1.write("A1", 123); |
|
|
|
Format format; |
|
|
@ -76,21 +83,23 @@ void DocumentTest::testReadWriteNumeric() |
|
|
|
format.setFillPattern(Format::PatternSolid); |
|
|
|
format.setNumberFormatIndex(10); |
|
|
|
xlsx1.write("A2", 12345, format); |
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
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().isValid()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format(), format); |
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
} |
|
|
|
|
|
|
|
void DocumentTest::testReadWriteBool() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
xlsx1.write("A1", true); |
|
|
|
Format format; |
|
|
@ -98,21 +107,23 @@ void DocumentTest::testReadWriteBool() |
|
|
|
format.setBorderStyle(Format::BorderDashDotDot); |
|
|
|
format.setFillPattern(Format::PatternSolid); |
|
|
|
xlsx1.write("A2", false, format); |
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
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().isValid()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format(), format); |
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
} |
|
|
|
|
|
|
|
void DocumentTest::testReadWriteBlank() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
xlsx1.write("A1", QVariant()); |
|
|
|
Format format; |
|
|
@ -120,9 +131,10 @@ void DocumentTest::testReadWriteBlank() |
|
|
|
format.setBorderStyle(Format::BorderDashDotDot); |
|
|
|
format.setFillPattern(Format::PatternSolid); |
|
|
|
xlsx1.write("A2", QVariant(), format); |
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
QVERIFY(xlsx2.cellAt("A1")); |
|
|
|
QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Blank); |
|
|
|
QVERIFY(!xlsx2.cellAt("A1")->value().isValid()); |
|
|
@ -131,12 +143,13 @@ void DocumentTest::testReadWriteBlank() |
|
|
|
QVERIFY(!xlsx2.cellAt("A2")->value().isValid()); |
|
|
|
QVERIFY(xlsx2.cellAt("A2")->format().isValid()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format(), format); |
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
} |
|
|
|
|
|
|
|
void DocumentTest::testReadWriteFormula() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
xlsx1.write("A1", "=11+22"); |
|
|
|
Format format; |
|
|
@ -144,10 +157,11 @@ void DocumentTest::testReadWriteFormula() |
|
|
|
format.setBorderStyle(Format::BorderDashDotDot); |
|
|
|
format.setFillPattern(Format::PatternSolid); |
|
|
|
xlsx1.write("A2", "=22+33", format); |
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Formula); |
|
|
|
// QCOMPARE(xlsx2.cellAt("A1")->value().toDouble(), 0.0);
|
|
|
|
QCOMPARE(xlsx2.cellAt("A1")->formula(), QStringLiteral("11+22")); |
|
|
@ -156,12 +170,13 @@ void DocumentTest::testReadWriteFormula() |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->formula(), QStringLiteral("22+33")); |
|
|
|
QVERIFY(xlsx2.cellAt("A2")->format().isValid()); |
|
|
|
QCOMPARE(xlsx2.cellAt("A2")->format(), format); |
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
} |
|
|
|
|
|
|
|
void DocumentTest::testReadWriteDateTime() |
|
|
|
{ |
|
|
|
QBuffer device; |
|
|
|
device.open(QIODevice::WriteOnly); |
|
|
|
|
|
|
|
Document xlsx1; |
|
|
|
QDateTime dt(QDate(2012, 11, 12), QTime(6, 0), Qt::UTC); |
|
|
|
|
|
|
@ -177,10 +192,10 @@ void DocumentTest::testReadWriteDateTime() |
|
|
|
format3.setNumberFormat("dd/mm/yyyy"); |
|
|
|
xlsx1.write("A3", dt, format3); |
|
|
|
|
|
|
|
xlsx1.saveAs("test.xlsx"); |
|
|
|
|
|
|
|
Document xlsx2("test.xlsx"); |
|
|
|
xlsx1.saveAs(&device); |
|
|
|
|
|
|
|
device.open(QIODevice::ReadOnly); |
|
|
|
Document xlsx2(&device); |
|
|
|
QCOMPARE(xlsx2.cellAt("A1")->dataType(), Cell::Numeric); |
|
|
|
QCOMPARE(xlsx2.cellAt("A1")->isDateTime(), true); |
|
|
|
QCOMPARE(xlsx2.cellAt("A1")->dateTime(), dt); |
|
|
@ -195,9 +210,6 @@ void DocumentTest::testReadWriteDateTime() |
|
|
|
QCOMPARE(xlsx2.cellAt("A3")->isDateTime(), true); |
|
|
|
QCOMPARE(xlsx2.cellAt("A3")->dateTime(), dt); |
|
|
|
QCOMPARE(xlsx2.cellAt("A3")->format().numberFormat(), QString("dd/mm/yyyy")); |
|
|
|
|
|
|
|
QFile::remove("test.xlsx"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
QTEST_APPLESS_MAIN(DocumentTest) |
|
|
|