声明,我的Qt版本为5.7 (x64)
qt对于excel的读写过于繁琐使用,但是 Qt Xlsx Module 某块提供了读写Excel 文件的类.其不需要安装 Microsoft Excel 与QT5结合,可以使用在任何平台,该库主要用如下几个功能:
- Generate a new .xlsx file from scratch
- Extract data from an existing .xlsx file
- Edit an existing .xlsx file
由于在编译的使用需要安装perl因此这里也需要下载安装ActiveState Perl,
下载地址:http://www.activestate.com/activeperl/downloads
下载完毕后,按照默认安装顺序即可。注意安装完毕后需要添加将activestate perl的安装目录添加系统系统环境变量,不然Qt可能找不到该工具。
上面的代码下载完毕,activestate perl也安装完毕之后就可以编译了,打开源码包的工程,比如我的是:
F:\QtXlsxWriter-master\qtxlsx.pro
为了编译方便可以仅仅构建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" 替换掉重新构建就可以了。
构建完毕之后,后生产如下几个文件:
F:\build-qtxlsx-Desktop_Qt_5_7_0_MSVC2013_64bit-Debug
include
lib
mkspecs
src
.qmake.cache
接下来就需要将这些文件拷贝到指定的位置,以便Qt可以正常的调用,
1、首先拷贝include目录下的QtXlsx目录到Qt的安装目录下,比如我的拷贝到:
D:\Qt\Qt5.7.0\5.7\msvc2013_64\include
2、接下来拷贝ib文件夹下 Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl 4个文件到你的Qt的lib下:
D:\Qt\Qt5.7.0\5.7\msvc2013_64\lib
3、拷贝lib文件夹下的 Qt5Xlsx.dll Qt5Xlsxd.dll 库文件到你的Qt库路径下
D:\Qt\Qt5.7.0\5.7\msvc2013_64\bin
4、拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下
D:\Qt\Qt5.7.0\5.7\msvc2013_64\mkspecs\modules
接下来就可以使用Qt进行excel的操作了,只是需要注意,
使用的时候需要包含头文件
#include <QtXlsx>
在你的 qmake .pro 需要添加:
QT += xlsx
完毕之后,最好先qmake 在构建工程,否则会提示连接不到库。
下面给出几个简单的例子,转步:
http://blog.csdn.net/woshidahuaidan2011/article/details/53349163
ps:例程在源码包目录下的example文件夹下。