qt 使用 xlsx库操作excel表格

QXlsx配置方法
1. 下载QtXlsx类,地址:https://github.com/dbzhang800/QtXlsxWriter
2. 下载Perl5地址:https://www.perl.org/get.html  直接双击安装,一直默认或者修改安装路径。

安装完后,添加到环境变量,我的电脑->属性->高级->环境变量->系统变量->path    D:\workSoft\perl\bin;  注意英文分号。

3. 使用qt打开QtXlsxWriter源码进行编译


编译的过程成可能会出现一个错误:将QList改为QVector 然后添加头文件 #include<QVector>;

编译生成文件截图:



4. 将qxlsx库添加到qt中:

(1) 拷贝上图 include文件下的文件到你的Qt安装目录D:\Qt\Qt5.7.0\5.7\mingw53_32\include (直接copy,无需修改任何内容)

(2)拷贝上图lib文件夹下 Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl 4个文件到你的Qt的lib下 D:\Qt\Qt5.7.0\5.7\mingw53_32\lib

(3)拷贝lib文件夹下的 Qt5Xlsx.dll Qt5Xlsxd.dll 库文件到你的Qt库路径下 D:\Qt\Qt5.7.0\5.7\mingw53_32\bin

(4)拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下 D:\Qt\Qt5.7.0\5.7\mingw53_32\mkspecs\modules

至此qt使用qxlsx的环境已经配置好了,接下来让我简单的使用qxlsx吧;


笔者已经编译完成并上传编译完的库 http://download.csdn.net/download/u012532263/10102895

5. qt使用qxlsx:

pro文件里面加上 QT += xlsx 

添加头文件

#include"xlsxdocument.h"

#include "xlsxformat.h"
#include "xlsxcellrange.h"
#include "xlsxchart.h"

         QXlsx::Documentxlsx("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");


简单的使用,这样就会生成xlsx表格了,效果图如下:


希望能帮助你们,谢谢 !


猜你喜欢

转载自blog.csdn.net/u012532263/article/details/78436431
今日推荐