一、从源码下载。
二、编译安装QXlsx库
2.1安装Perl
QtXlsx是一个可以读写excel文件的库,只要支持Qt5,其不需要安装有微软的excel即可在任何平台上使用。此库可以完成以下功能:创建.xlsx文件,从现有的.xlsx文件中读取数据,编辑已经存在的xlsx文件.
从源码的README文件我们可以知道,此库在编译安装的时候需要Perl的支持。可从草莓Perld的网址(
http://strawberryperl.co)下载所需的Perl安装包,下载完安装包后即需要首先完成安装Perl。
2.2编译安装QtXlsx
在安装过Perl后,打开Qt的cmd

然后再cmd中切换到QtXlsx的源码所在的路径。然后使用如下命令对此源码进行编译安装
qmake mingw32-make mingw32-make install
一般使用上述安装命令安装后是不会出现任何问题的,但是也不排除有像本人一样的Coder,
下载完代码后在QtCreator中先构建了某个例子以尝鲜,是不会成功的,经过我的实际测试,此步骤会导致在后续编译安装库的时候导致debug库编译安装失败,但是就是这一步会导致我们在上述安装过程中出现如下错误:
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();
解决办法:
这里直接把xlsxzipreader.cpp中添加如下头文件,并将此文件51行出现的QList替换为QVector即可。然后继续在Qt的cmd中继续上述安装命令进行编译安装。
#include <QVector>
#可加在xlsxzipreader.h中
注意:在下载完代码后,直接运行某个demo后,有可能会导致在编译安装的时候debug版本编译失败,此时可以将源码再解压一份按照上述过程再操作一次即可同时生成debug和release的库。
三、QXlsx例子编译
在上述步骤完成后即可再次打开QtXlsx的源码,尝试编译其example中的demo咯。此处为了简单起见,我将hello这个demo分离出来进行了单独编译,并尝试运行。
hello.pro
TARGET = hello QT+=xlsx CONFIG += console CONFIG -= app_bundle SOURCES += main.cpp HEADERS +=
hello的main.cpp
1 #include <QtCore> 2 #include "xlsxdocument.h" 3 4 int main() 5 { 6 //![0] 7 QXlsx::Document xlsx; 8 //![0] 9 10 //![1] 11 xlsx.write("A1", "Hello Qt!"); 12 xlsx.write("A2", 12345); 13 xlsx.write("A3", "=44+33"); 14 xlsx.write("A4", true); 15 xlsx.write("A5", "http://qt-project.org"); 16 xlsx.write("A6", QDate(2013, 12, 27)); 17 xlsx.write("A7", QTime(6, 30)); 18 //![1] 19 20 //![2] 21 xlsx.save(); 22 //![2] 23 24 return 0; 25 }
hello工程仅仅需要这两个文件即可。编译完成后即可发现,在其Relase目录中有Book1.xlsx这个excel表格生成,并且其中内容与main.cpp的一致

以后在使用Qtxlsx库的过程中可直接在其源码去查找相应的例子
参考博客:
2018-08-09