QtXlsx第三方库在Mac OS和Windows下的配置及简单使用

it2025-06-09  23

这里是小白一只,为了参与项目,最近自学了一点qt。要求先做一个实现excel导出的小demo,由于还没看到这部分知识的内容,在书里反复查找也没找到确切的内容,所以开始在网上看了很多博客。

了解到 QAxObject 需要电脑安装office或WPS,软件安装有问题的话,编译会出现问题,最主要,好像是由于缺少组建,它无法在 Mac OS 上使用。 ODBC 无法操作中文,数据多时读取速度仍然不够,并且难以控制内容格式。还有用 xlslib 的,这个在网上的介绍好像比较少,暂时还没有更多的了解。 (看到有很多说QAxObject的读写速度不够,浏览到一篇博客好像找到解决方法,这里先记录一下,以后有机会可以实践:qt快速读取excel)

最后打算尝试 QTXlsx 第三方库,跨平台,不需要安装excel,中文没问题,据说读写速度也ok。

官方链接:

官网:Qt Xlsx(有使用方法、测试样例)

源码地址: https://github.com/dbzhang800/QtXlsxWriter 修正过错误的源码地址: https://github.com/VSRonin/QtXlsxWriter (大致是解决用"QVector”替换”QList" 问题)

选择上文的源码地址下载压缩包并解压,以下用文件名 QtXlsxWriter-master 代指。

具体配置:

我是用第一种方法 使用Xlsx作为Qt5的插件模块 成功配置的,翻来覆去折腾好久,成功之后整理了一下思路,其实还是蛮简单的,之前查阅的博客写的也都挺全面的,这里还是简单记录一下。

Perl安装:

(参照菜鸟教程 Perl 环境安装 ) 在终端执行 perl -v 命令来查看是否已经安装Perl,已安装的输出是这样的:

Mac OS 安装 Perl:

Mac OS 系统一般默认安装,如果未安装则执行以下步骤:

在官网 Perl Download 下载适用于 Mac OS 的 perl-5.30.0.tar.gz 源码包 解压源码包(tar -xzf perl-5.30.0.tar.gz)在终端执行以下命令: cd perl-5.30.0//这里perl-5.30.0用文件具体路径替换,把文件夹拖入即可 ./Configure -de make make test make install

Windows 安装 Perl:

Perl 在 Window 平台上有 ActiveStatePerl 和 Strawberry Perl 编译器,这里使用了 Strawberry Perl 。

在 Strawberry Perl for Windows 下载对应你系统的版本的安装包: 32bit 或 64bit下载后双击打开,无脑安装就可以啦

更细节的可以参考 windows 安装 perl 教程 。 如果 cmd 在安装过程中一直开着,记得重新打开后再检查 Perl 的安装情况哦,否则信息不会更新。

构建模块:

Mac OS 构建:

在终端执行以下命令:

cd QtXlsxWriter-master//这里QtXlsxWriter-master用解压后的源码包具体路径替换,把文件夹拖入即可 qmake make make install

Windows构建:

双击打开源码包 QtXlsxWriter-master 中的 qtxlsx.pro ,使用 qtcreater 打开下载的源码 构建src文件 构建成功后,在源码包 QtXlsxWriter-master 同级目录下会产生一个文件存放目录,以下用文件名 build-qtxlsx-Desktop_Qt 指代 将 build-qtxlsx-Desktop_Qt 中以下文件拷贝到 Qt 安装目录的指定位置(我虚拟机上目录地址为C:\Qt\Qt5.6.1\5.6\mingw49_32):

将 include 文件夹下的 QtXlsx 文件夹拷贝到 Qt 安装目录下的 include 文件夹

将 lib 文件夹下的 Qt5Xlsxd.lib、Qt5Xlsx.lib(或Qt5Xlsxd.a、Qt5Xlsx.a )、Qt5Xlsxd.prl、Qt5Xlsx.prl 文件拷贝到 Qt 安装目录下的 lib 文件夹

将 lib 文件夹下的 Qt5Xlsxd.dll、Qt5Xlsx.dll 文件夹拷贝到 Qt 安装目录下的 bin 文件夹

将 mkspecs/modules 文件夹下的 qt_lib_xlsx.pri 文件拷贝到 Qt 安装目录下的 mkspecs/modules 文件夹

使用模块:

在.pro文件中添加QT += xlsx在编程文件中添加#include <QtXlsx>

简单使用:

这里再贴一下官网的示例网址 Qt Xlsx示例。

在最简单示例的基础上,实现了点击按钮导出excel(为方便参考文件名都是默认哒):

新建Qt Widgets Application项目(勾选一下‘设为默认的项目路径“,其余都可保持默认)在.pro文件中添加QT += xlsx,在mainwindow.cpp文件中添加#include <QtXlsx>和#include <QDebug>(为了实现简单的输出) (在使用中有出现一个小问题:有时.cpp文件中会出现这样的提示,不会报错,测试后发现实际上可以正常运行) 在ui界面上添加Push Button转到按钮的clicked()信号槽中 5.在clicked()信号槽中添加代码: (注:若不按照上述方法转到信号槽添加代码,而是直接在mainwindow.cpp中添加如下代码是无效的哦) void mywidget::on_pushButton_clicked() { QXlsx::Document xlsx; xlsx.write("A1", "你好"); xlsx.write("A2", 123456); xlsx.write("A3", "=44+33"); xlsx.write("A4", true); xlsx.write("A5", false); xlsx.write("A6", QDate(2013, 12, 27)); xlsx.write("A7", QTime(6, 30)); xlsx.saveAs("/Users/nihuanirre_/Desktop/Test1.xlsx");//注意更换路径 qDebug() << "导出完毕"; }

运行结果:

在点击按钮之后会输出: excel文件也在相应的地方生成: 可以看到中文不会乱码~

最新回复(0)