Qt下 编译和配置QtXlsxWriter (QtCreator下)

1、 下载QtXlsxWriter

       下载地址:https://github.com/dbzhang800/QtXlsxWriter

       帮助文档连接http://qtxlsx.debao.me/

2、下载perl编译器

      下载地址:https://www.activestate.com/activeperl/downloads

     安装后,在环境配置的path中添加per安装路径下的bin文件

3、编译下载的QtXlsxWriter文件,

      打开QtXlsxWriter-master\qtxlsx.pro,记住不需要构建example 和test,注释掉他们,否则可能会出现编译出错的问题

在构建的时候,可能会有如下的错误,

xlsxzipreader.cpp: In member function ‘void QXlsx::ZipReader::init()’:
xlsxzipreader.cpp:51:66: error: conversion from ‘QVector<QZipReader::FileInfo>’ to non-scalar type ‘QList<QZipReader::FileInfo>’ requested
     QList<QZipReader::FileInfo> allFiles = m_reader->fileInfoList();

这里只需要吧出错的文件添加 :
 #include <QVector>
然后把出错的地方的"QList" 用"QVector" 替换掉重新构建就可以了。

构建 Debug  和Release

生成上图的内容

接下来就需要将这些文件拷贝到指定的位置,以便Qt可以正常的调用,

1、首先拷贝include目录下的QtXlsx目录到Qt的安装目录下,比如我的拷贝到:

D:\ProgramFile\Qt\5.8\mingw53_32\include   并修改QtXlsx下hearders.pri中的路径,用记事本的方式打开,修改即可,如下图:


2、接下来拷贝ib文件夹下 Qt5Xlsxd.lib   Qt5Xlsx.lib   Qt5Xlsx.prl   Qt5Xlsxd.prl  4个文件到你的Qt的lib下:

D:\ProgramFile\Qt\5.8\mingw53_32\lib

3、拷贝lib文件夹下的  Qt5Xlsx.dll  Qt5Xlsxd.dll 库文件到你的Qt库路径下

D:\ProgramFile\Qt\5.8\mingw53_32\bin

4、拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下

D:\ProgramFile\Qt\5.8\mingw53_32\mkspecs\modules,此时.pri中的路径还是你生成release下的路径,我的做法是将release下的内容放在qt的安装路径下,然后修改路径即可。



添加完后,便可以使用了。

在新建的项目中的.pro文件中添加 QT+=xlsx

在头文件中包含 #include <QtXlsx>即可

 


下面给出一个小例子:

        QXlsx::Documentxlsx;

     xlsx.write("A1" , "Hello Qt");
      xlsx.saveAs("Test.xlsx");

    //写
     QXlsx::Document xlsx;
     if(!xlsx.selectSheet("station"))
     {
         xlsx.addSheet("station");
     }
     xlsx.write(1, 1, "x");
     xlsx.write(1,2, "y");
     xlsx.write(1, 3, "v");
     xlsx.write(2, 1, 100);
     xlsx.write(2,2, 100);
     xlsx.write(2, 3, 20);
     xlsx.saveAs("./agv.xlsx");
 
     //读取
      QXlsx::Document xlsxx("./agv.xlsx");
      xlsx.selectSheet("station");
      QXlsx::CellRange range;
      range = xlsxx.dimension();
      int rowCount = xlsxx.dimension().rowCount();//获取行数
      for(int i = 1; i < rowCount + 1; i ++)
      {
          qDebug()<<QString::number(i)<<xlsxx.cellAt(i,1)->value().toString()<<xlsxx.cellAt(i,2)->value().toString()
                 <<xlsxx.cellAt(i,3)->value().toString();
      }


/*************************************************************************************/

附件中有我编辑过的程序,可以下载直接运行后,再配置至Qt安装目录即可,若不想更改路径,则不要将编译过的文件删除即可。

编辑后的文件地址






评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值