Qt Xlsx(QtXlsxWriter)使用ルーチン

19912 ワード

Qt Xlsx(QtXlsxWriter)のインストールについては、以下を参照してください.http://blog.csdn.net/woshidahuaidan2011/article/details/52724452ここでは主にその基本的なプログラミングの使い方を紹介します.まずxlsxファイルの読み書きを考えます.そのため、次のコードがあります.
#include <QtCore>
#include "xlsxdocument.h"
#include "xlsxformat.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"

int main()
{
    QXlsx::Document xlsx("book1.xlsx");/*    book1   */
    QXlsx::Format format1;/*        */
    format1.setFontColor(QColor(Qt::red));/*     */
    format1.setPatternBackgroundColor(QColor(152,251,152));/*    */
    format1.setFontSize(15);/*      */
    format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*    */
    format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*    */
    xlsx.write("A1", "Hello Qt!", format1);/*    ,         */
    xlsx.write(2, 1, 12345, format1);/*    ,         */

    QXlsx::Format format2;/*            */
    format2.setFontBold(true);/*    */
    format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*    */
    format2.setFillPattern(QXlsx::Format::PatternLightUp);/*    */
    xlsx.write("A4", "=44+33", format2);/*    ,         */
    xlsx.write("C4", true, format2);

    xlsx.saveAs("book1.xlsx");/*  */
    QXlsx::Document xlsx2("Book1.xlsx");/*  book1 book2*/
    xlsx2.saveAs("Book2.xlsx");

    return 0;
}

その運転効果は以下の通りである:Qt Xlsx ( QtXlsxWriter ) 使用例程_第1张图片
次に、データを処理するのは、折れ線図、円グラフなどを挿入して画像化する処理データが多いため、既存のコードにsheetを追加し、円グラフとそのストライプ図を挿入するコードを追加することができます.
#include <QtCore>
#include "xlsxdocument.h"
#include "xlsxformat.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"

int main()
{
    QXlsx::Document xlsx("book1.xlsx");/*    book1   */
    QXlsx::Format format1;/*        */
    format1.setFontColor(QColor(Qt::red));/*     */
    format1.setPatternBackgroundColor(QColor(152,251,152));/*    */
    format1.setFontSize(15);/*      */
    format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*    */
    format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*    */
    xlsx.write("A1", "Hello Qt!", format1);/*    ,         */
    xlsx.write(2, 1, 12345, format1);/*    ,         */

    QXlsx::Format format2;/*            */
    format2.setFontBold(true);/*    */
    format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*    */
    format2.setFillPattern(QXlsx::Format::PatternLightUp);/*    */
    xlsx.write("A4", "=44+33", format2);/*    ,         */
    xlsx.write("C4", true, format2);

    if(!xlsx.selectSheet("ziv")){/*      xlsx   ,      ziv sheet*/
        xlsx.addSheet("ziv");//            ziv sheet
    }
    for (int i=10; i<20; ++i) {/*      */
        xlsx.write(i, 1, i*i*i);   //A10:A19
        xlsx.write(i, 2, i*i); //B10:B19
        xlsx.write(i, 3, i*i-1); //C10:C19
    }
    QXlsx::Chart *pieChart = xlsx.insertChart(3, 5, QSize(300, 300));/* 3 5          */
    pieChart->setChartType(QXlsx::Chart::CT_Pie);/*       */
    pieChart->addSeries(QXlsx::CellRange("A10:A19"));/*       */
    pieChart->addSeries(QXlsx::CellRange("B10:B19"));
    pieChart->addSeries(QXlsx::CellRange("C10:C19"));

    QXlsx::Chart *barChart = xlsx.insertChart(3, 13, QSize(300, 300));/* 3 13          */
    barChart->setChartType(QXlsx::Chart::CT_Bar);/*   */
    barChart->addSeries(QXlsx::CellRange("A10:C19"));/*        */

    xlsx.saveAs("book1.xlsx");/*  */
    QXlsx::Document xlsx2("Book1.xlsx");/*  book1 book2*/
    xlsx2.saveAs("Book2.xlsx");

    return 0;
}

上記のコードでの実行効果は、Qt Xlsx ( QtXlsxWriter ) 使用例程_第2张图片です.
Qt Xlsx ( QtXlsxWriter ) 使用例程_第3张图片
多くの場合、テーブルを美化するためにグラフを追加する必要があります.コードは次のとおりです.
#include <QtCore>
#include <QtGui>
#include "xlsxdocument.h"
#include "xlsxformat.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"

int main()
{
    QXlsx::Document xlsx("book1.xlsx");/*    book1   */
    QXlsx::Format format1;/*        */
    format1.setFontColor(QColor(Qt::red));/*     */
    format1.setPatternBackgroundColor(QColor(152,251,152));/*    */
    format1.setFontSize(15);/*      */
    format1.setHorizontalAlignment(QXlsx::Format::AlignHCenter);/*    */
    format1.setBorderStyle(QXlsx::Format::BorderDashDotDot);/*    */
    xlsx.write("A1", "Hello Qt!", format1);/*    ,         */
    xlsx.write(2, 1, 12345, format1);/*    ,         */

    QXlsx::Format format2;/*            */
    format2.setFontBold(true);/*    */
    format2.setFontUnderline(QXlsx::Format::FontUnderlineDouble);/*    */
    format2.setFillPattern(QXlsx::Format::PatternLightUp);/*    */
    xlsx.write("A4", "=44+33", format2);/*    ,         */
    xlsx.write("C4", true, format2);

    if(!xlsx.selectSheet("ziv")){/*      xlsx   ,      ziv sheet*/
        xlsx.addSheet("ziv");//            ziv sheet
    }
    for (int i=10; i<20; ++i) {/*      */
        xlsx.write(i, 1, i*i*i);   //A10:A19
        xlsx.write(i, 2, i*i); //B10:B19
        xlsx.write(i, 3, i*i-1); //C10:C19
    }
    QXlsx::Chart *pieChart = xlsx.insertChart(3, 5, QSize(300, 300));/* 3 5          */
    pieChart->setChartType(QXlsx::Chart::CT_Pie);/*       */
    pieChart->addSeries(QXlsx::CellRange("A10:A19"));/*       */
    pieChart->addSeries(QXlsx::CellRange("B10:B19"));
    pieChart->addSeries(QXlsx::CellRange("C10:C19"));

    QXlsx::Chart *barChart = xlsx.insertChart(3, 13, QSize(300, 300));/* 3 13          */
    barChart->setChartType(QXlsx::Chart::CT_Bar);/*   */
    barChart->addSeries(QXlsx::CellRange("A10:C19"));/*        */

    QImage image(40, 100, QImage::Format_RGB32);/*    Qimage,  40*100*/
    image.fill(Qt::green);/*    */
    xlsx.insertImage(1, 1, image);/*    */




    xlsx.saveAs("book1.xlsx");/*  */

    QXlsx::Document xlsx2("Book1.xlsx");/*  book1 book2*/
    xlsx2.saveAs("Book2.xlsx");

    return 0;
}

効果は次のとおりです:Qt Xlsx ( QtXlsxWriter ) 使用例程_第4张图片
ここまでQt Xlsxの使用は大部分の需要を満たすことができるべきで、もし疑問があれば伝言の指摘を歓迎して、原文の住所:http://blog.csdn.net/woshidahuaidan2011/article/details/53349163