一、从源码下载。
网址:https://github.com/dbzhang800/QtXlsxWriter
二、编译安装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
#include <QtCore>
#include "xlsxdocument.h"
int main()
{
//![0]
QXlsx::Document xlsx;
//![0]
//![1]
xlsx.write("A1", "Hello Qt!");
xlsx.write("A2", 12345);
xlsx.write("A3", "=44+33");
xlsx.write("A4", true);
xlsx.write("A5", "http://qt-project.org");
xlsx.write("A6", QDate(2013, 12, 27));
xlsx.write("A7", QTime(6, 30));
//![1]
//![2]
xlsx.save();
//![2]
return 0;
}
hello工程仅仅需要这两个文件即可。编译完成后即可发现,在其Relase目录中有Book1.xlsx这个excel表格生成,并且其中内容与main.cpp的一致
以后在使用Qtxlsx库的过程中可直接在其源码去查找相应的例子
参考博客:
https://stackoverflow.com/questions/28640107/not-able-to-make-qtxlsxwriter
https://blog.csdn.net/zhulichen/article/details/78115155
相关文件: