QT操作Excel ----QtXlsx

最近在做QT操作excel,查了好多资料,最开始使用的是QAxObject,但需要电脑安装office(Excel.Application)或WPS(ket.Application)。软件安装有问题的话,编译会出问题。挺麻烦。

无意间发现了QtXlsx这个东西,介绍说不需要安装excel便可操作。使用后发现挺简单,方便。只是配置有些麻烦,现记录如下。

首先,下载QtXlsx类,地址:https://github.com/dbzhang800/QtXlsxWriter

官网:http://qtxlsx.debao.me 有详细说明。


下面介绍windows的2中使用方法:


第一个方式:添加到模块

1.首先,下载Perl

    地址:https://www.perl.org

    选择相应的版本,下载activeperl,然后默认安装即可。

2.编译源码

    使用qtcreater打开下载的源码,为了编译方便可以仅仅构建src,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" 替换掉重新构建就可以了。

有网友提供了没有错误的源码地址,地址:https://github.com/VSRonin/QtXlsxWriter 本人未试验,具体未知。

3.拷贝文件

    构建成功,在你编译的目录下回生成lib文件和需要包含的文件(include)还有一个模块pri文件,如图

    

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

1》拷贝上图 include文件下的文件到你的Qt安装目录 D:\Qt\Qt5.9.2\5.9.2\msvc2015_64\include (直接copy,无需修改任何内容,地址换成自己QT安装的相应目录)

2》拷贝上图lib文件夹下 Qt5Xlsxd.lib   Qt5Xlsx.lib   Qt5Xlsx.prl   Qt5Xlsxd.prl  4个文件到你的Qt的lib下 D:\Qt\Qt5.9.2\5.9.2\msvc2015_64\lib

    3》 拷贝lib文件夹下的  Qt5Xlsx.dll  Qt5Xlsxd.dll 库文件到你的Qt库路径bin下  D:\Qt\Qt5.9.2\5.9.2\msvc2015_64\bin

    4》拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下 D:\Qt\Qt5.9.2\5.9.2\msvc2015_64\mkspecs\modules

        此处如果不添加的话,在你的Pro文件内写  QT += xlsx 会不识别此模块


4 好了,现在可以跑例子了。

    打开源码中demo例子,编译,执行。会在编译文件下看到"Book1.xlsx"和"Book2.xlsx"。打开2个文件会看到如下界面:


5. 完成,以后使用的时候只需要在.pro文件中添加

QT += xlsx

在编程文件中添加

#include <QtXlsx>

    便可使用。


第二种方法:直接使用代码。

1.当然还是必须要有perl5环境.

2.建立工程,把代码放到工程同级目录

[plain]  view plain  copy
  1. |-- project.pro  
  2. |-- ....  
  3. |-- 3rdparty\  
  4. |     |-- qtxlsx\  
  5. |     |  

3. 在项目pro文件里添加

[cpp]  view plain  copy
  1. include(3rdparty/qtxlsx/src/xlsx/qtxlsx.pri)  

4. 在main.cpp添加代码 

[cpp]  view plain  copy
  1. #include "xlsxdocument.h"  
  2. int main()  
  3. {  
  4.     QXlsx::Document xlsx;  
  5.     xlsx.write("A1""Hello Qt!");  
  6.     xlsx.saveAs("Test.xlsx");  
  7.     return 0;  
  8. }  
然后同上面一个qmake

编译代码就会生成Excel表格了。

同时注意:不用qmake 的话,使用下面宏。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值