Debao Zhang
11 years ago
6 changed files with 150 additions and 12 deletions
@ -0,0 +1,9 @@ |
|||||
|
TARGET = demo |
||||
|
|
||||
|
#include(../../../src/xlsx/qtxlsx.pri) |
||||
|
QT+=xlsx |
||||
|
|
||||
|
CONFIG += console |
||||
|
CONFIG -= app_bundle |
||||
|
|
||||
|
SOURCES += main.cpp |
After Width: | Height: | Size: 39 KiB |
@ -0,0 +1,8 @@ |
|||||
|
/*! |
||||
|
\example demo |
||||
|
\title Xlsx Demo |
||||
|
\brief This is a demo which is used to show features of the library |
||||
|
\ingroup qtxlsx-examples |
||||
|
|
||||
|
\image xlsx_demo.png |
||||
|
*/ |
@ -0,0 +1,120 @@ |
|||||
|
#include <QtCore> |
||||
|
#include "xlsxdocument.h" |
||||
|
#include "xlsxformat.h" |
||||
|
#include "xlsxcellrange.h" |
||||
|
#include "xlsxworksheet.h" |
||||
|
|
||||
|
QTXLSX_USE_NAMESPACE |
||||
|
|
||||
|
void writeHorizontalAlignCell(Document &xlsx, const QString &cell, const QString &text, Format::HorizontalAlignment align) |
||||
|
{ |
||||
|
Format *format = xlsx.createFormat(); |
||||
|
format->setHorizontalAlignment(align); |
||||
|
format->setBorderStyle(Format::BorderThin); |
||||
|
xlsx.write(cell, text, format); |
||||
|
} |
||||
|
|
||||
|
void writeVerticalAlignCell(Document &xlsx, const QString &range, const QString &text, Format::VerticalAlignment align) |
||||
|
{ |
||||
|
Format *format = xlsx.createFormat(); |
||||
|
format->setVerticalAlignment(align); |
||||
|
format->setBorderStyle(Format::BorderThin); |
||||
|
xlsx.mergeCells(range); |
||||
|
|
||||
|
CellRange r(range); |
||||
|
for (int row=r.firstRow(); row<=r.lastRow(); ++row) { |
||||
|
for (int col=r.firstColumn(); col<=r.lastColumn(); ++col) { |
||||
|
if (row == r.firstRow() && col == r.firstColumn()) |
||||
|
xlsx.write(row, col, text, format); |
||||
|
else |
||||
|
xlsx.write(row, col, QVariant(), format); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void writeBorderStyleCell(Document &xlsx, const QString &cell, const QString &text, Format::BorderStyle bs) |
||||
|
{ |
||||
|
Format *format = xlsx.createFormat(); |
||||
|
format->setBorderStyle(bs); |
||||
|
xlsx.write(cell, text, format); |
||||
|
} |
||||
|
|
||||
|
void writeSolidFillCell(Document &xlsx, const QString &cell, const QColor &color) |
||||
|
{ |
||||
|
Format *format = xlsx.createFormat(); |
||||
|
format->setPatternBackgroundColor(color); |
||||
|
xlsx.write(cell, QVariant(), format); |
||||
|
} |
||||
|
|
||||
|
void writePatternFillCell(Document &xlsx, const QString &cell, Format::FillPattern pattern, const QColor &color) |
||||
|
{ |
||||
|
Format *format = xlsx.createFormat(); |
||||
|
format->setPatternForegroundColor(color); |
||||
|
format->setFillPattern(pattern); |
||||
|
xlsx.write(cell, QVariant(), format); |
||||
|
} |
||||
|
|
||||
|
void writeBorderAndFontColorCell(Document &xlsx, const QString &cell, const QString &text, const QColor &color) |
||||
|
{ |
||||
|
Format *format = xlsx.createFormat(); |
||||
|
format->setBorderStyle(Format::BorderThin); |
||||
|
format->setBorderColor(color); |
||||
|
format->setFontColor(color); |
||||
|
xlsx.write(cell, text, format); |
||||
|
} |
||||
|
|
||||
|
int main() |
||||
|
{ |
||||
|
Document xlsx; |
||||
|
|
||||
|
//The default sheet is "Sheet1"
|
||||
|
xlsx.setSheetName("Aligns & Borders"); |
||||
|
xlsx.setColumn("B", "B", 20); |
||||
|
xlsx.setColumn("H", "H", 12); |
||||
|
xlsx.currentWorksheet()->setGridLinesVisible(false); |
||||
|
|
||||
|
//Alignment
|
||||
|
writeHorizontalAlignCell(xlsx, "B3", "AlignLeft", Format::AlignLeft); |
||||
|
writeHorizontalAlignCell(xlsx, "B5", "AlignHCenter", Format::AlignHCenter); |
||||
|
writeHorizontalAlignCell(xlsx, "B7", "AlignRight", Format::AlignRight); |
||||
|
writeVerticalAlignCell(xlsx, "D3:D7", "AlignTop", Format::AlignTop); |
||||
|
writeVerticalAlignCell(xlsx, "F3:F7", "AlignVCenter", Format::AlignVCenter); |
||||
|
writeVerticalAlignCell(xlsx, "H3:H7", "AlignBottom", Format::AlignBottom); |
||||
|
|
||||
|
//Border
|
||||
|
writeBorderStyleCell(xlsx, "B13", "BorderMedium", Format::BorderMedium); |
||||
|
writeBorderStyleCell(xlsx, "B15", "BorderDashed", Format::BorderDashed); |
||||
|
writeBorderStyleCell(xlsx, "B17", "BorderDotted", Format::BorderDotted); |
||||
|
writeBorderStyleCell(xlsx, "B19", "BorderThick", Format::BorderThick); |
||||
|
writeBorderStyleCell(xlsx, "B21", "BorderDouble", Format::BorderDouble); |
||||
|
writeBorderStyleCell(xlsx, "B23", "BorderDashDot", Format::BorderDashDot); |
||||
|
|
||||
|
//Fill
|
||||
|
writeSolidFillCell(xlsx, "D13", Qt::red); |
||||
|
writeSolidFillCell(xlsx, "D15", Qt::blue); |
||||
|
writeSolidFillCell(xlsx, "D17", Qt::yellow); |
||||
|
writeSolidFillCell(xlsx, "D19", Qt::magenta); |
||||
|
writeSolidFillCell(xlsx, "D21", Qt::green); |
||||
|
writeSolidFillCell(xlsx, "D23", Qt::gray); |
||||
|
writePatternFillCell(xlsx, "F13", Format::PatternMediumGray, Qt::red); |
||||
|
writePatternFillCell(xlsx, "F15", Format::PatternDarkHorizontal, Qt::blue); |
||||
|
writePatternFillCell(xlsx, "F17", Format::PatternDarkVertical, Qt::yellow); |
||||
|
writePatternFillCell(xlsx, "F19", Format::PatternDarkDown, Qt::magenta); |
||||
|
writePatternFillCell(xlsx, "F21", Format::PatternLightVertical, Qt::green); |
||||
|
writePatternFillCell(xlsx, "F23", Format::PatternLightTrellis, Qt::gray); |
||||
|
|
||||
|
writeBorderAndFontColorCell(xlsx, "H13", "Qt::red", Qt::red); |
||||
|
writeBorderAndFontColorCell(xlsx, "H15", "Qt::blue", Qt::blue); |
||||
|
writeBorderAndFontColorCell(xlsx, "H17", "Qt::yellow", Qt::yellow); |
||||
|
writeBorderAndFontColorCell(xlsx, "H19", "Qt::magenta", Qt::magenta); |
||||
|
writeBorderAndFontColorCell(xlsx, "H21", "Qt::green", Qt::green); |
||||
|
writeBorderAndFontColorCell(xlsx, "H23", "Qt::gray", Qt::gray); |
||||
|
|
||||
|
xlsx.saveAs("Book1.xlsx"); |
||||
|
|
||||
|
//Make sure that read/write works well.
|
||||
|
Document xlsx2("Book1.xlsx"); |
||||
|
xlsx2.saveAs("Book2.xlsx"); |
||||
|
|
||||
|
return 0; |
||||
|
} |
Loading…
Reference in new issue