☰
QtXlsx编译与使用
2026/10/22 2:14:52 网站建设 项目流程

QtXlsx 编译与使用

本文基于工程目录内的实际资料整理(源码包 qtxlsxwriter-master),并结合官方文档说明编写。

1. 什么是 QtXlsx

QtXlsx 是一个基于 Qt 的 Excel(.xlsx)读写库,不依赖 Microsoft Excel,可在 Qt 5 支持的任何平台使用。版本:0.3.0。

它支持三大能力:

  • 新建.xlsx 文件(从零生成)

  • 读取已有 .xlsx 文件的数据

  • 编辑已有 .xlsx 文件


2. 下载

2.1 下载来源

项目说明
源码包qtxlsxwriter-master.zip(即工程目录内已存放的压缩包,对应 GitHub 仓库的 master 分支)
在线文档http://qtxlsx.debao.me
许可证见源码包内LICENSE(MIT 风格的开源许可)

2.2 源码包内容

解压qtxlsxwriter-master.zip后得到:

qtxlsxwriter-master/ ├── src/xlsx/ # 核心库源码(含 qtxlsx.pri) ├── examples/xlsx/ # 示例工程(hello、demo、chart 等 20 个) ├── tests/ # 单元测试 ├── qtxlsx.pro # 顶层工程文件 ├── .qmake.conf # 模块版本定义(MODULE_VERSION = 0.3.0) └── README.md # 官方使用说明

3. 编译(构建)

3.1 前置依赖

  1. Qt 5(需含qmake与对应编译器工具链)。

  2. Perl—— 仅在将 QtXlsx 编译为 Qt 的 addon 模块时需要。工程目录内已附带:

  • Perl/ActivePerl_5.16.2.3010812913.msi(安装包)

  • Perl/windows下perl的安装和脚本的运行-百度经验.pdf(安装教程)

  1. Linux 下若 Qt 通过 apt 安装,需额外安装开发包qtbase5-private-dev。

3.2 方式一:编译为 Qt5 的 addon 模块(可QT += xlsx引用)

在源码顶层目录执行(Windows 上进入对应 Qt 的qmake命令行环境):

qmake make # Windows/MSVC 下可执行 nmake 或 jom make install # 将库、头文件、mkspecs 安装到系统/Qt 目录

辅助命令:

make html_docs # 生成库文档 make check # 运行单元测试

Windows 注意:需要先进入 Qt 提供的命令行环境(如 “Qt 5.9.3 (MSVC2015 64bit)” ),确保

qmake

、

nmake

可用。

3.3 方式二:源码直接集成进工程(qmake 工程推荐)

把源码放到工程内(例如3rdparty/qtxlsx/),然后在工程.pro中:

include(3rdparty/qtxlsx/src/xlsx/qtxlsx.pri)

或者把src/xlsx整个目录复制到你的工程源码路径下,直接:

include(qtxlsx.pri)

若你的工程

不用 qmake

,需要手动定义宏

XLSX_NO_LIB

。

3.4 本机已编译好的库(直接拿来用)

工程目录内已存在两份用Qt 5.9.3 + MSVC2015编译好的Debug版本(32 位与 64 位各一份):

目录架构
build-qtxlsx-Desktop_Qt_5_9_3_MSVC2015_32bit-Debug32 位
build-qtxlsx-Desktop_Qt_5_9_3_MSVC2015_64bit-Debug64 位

每个构建目录内的产物结构:

build-qtxlsx-...-Debug/ ├── bin/ # Qt5Xlsx.dll(Release)、Qt5Xlsxd.dll(Debug) ├── include/QtXlsx/ # 头文件 + 版本 0.3.0 ├── lib/ # Qt5Xlsx.lib / Qt5Xlsxd.lib(导入库)、.exp、.pdb、.prl、cmake 配置 ├── mkspecs/modules/ # qmake 模块配置 qt_lib_xlsx.pri ├── examples/xlsx/ # 各示例的编译中间产物 └── tests/

⚠️ 注意:

mkspecs/modules/qt_lib_xlsx.pri

中记录的原始构建路径为

D:/CurPM/QtXlsx/...

。若直接以 addon 方式使用这套库,需将对应路径修改为实际库所在位置,或将库安装到你的 Qt 目录后重新引用。


4. 使用

4.1 方式一:作为 Qt 模块使用(已make install)

工程.pro中:

QT += xlsx

代码中使用统一头文件和命名空间:

#include <QtXlsx> int main() { QXlsx::Document xlsx; xlsx.write("A1", "Hello Qt!"); xlsx.saveAs("Test.xlsx"); return 0; }

4.2 方式二:源码直接集成(include qtxlsx.pri)

工程.pro:

include(qtxlsx.pri)

代码中直接包含xlsxdocument.h:

#include "xlsxdocument.h" int main() { QXlsx::Document xlsx; xlsx.write("A1", "Hello Qt!"); xlsx.saveAs("Test.xlsx"); return 0; }

4.3 方式三:直接链接已编译好的库(不安装)

在.pro中手动指定:

# 以 64 位 Debug 为例,路径按实际调整 INCLUDEPATH += $$PWD/../QtXlsx/build-qtxlsx-Desktop_Qt_5_9_3_MSVC2015_64bit-Debug/include/QtXlsx LIBS += -L$$PWD/../QtXlsx/build-qtxlsx-Desktop_Qt_5_9_3_MSVC2015_64bit-Debug/lib -lQt5Xlsxd
  • Debug版链接Qt5Xlsxd.lib,运行时需Qt5Xlsxd.dll

  • Release版链接Qt5Xlsx.lib,运行时需Qt5Xlsx.dll

  • 运行时需把对应bin/加入 PATH,或把 dll 拷贝到可执行文件旁;同时需要匹配的 Qt 5.9.3 MSVC2015 运行库。


5. 快速上手示例(来自 hello 示例)

examples/xlsx/hello/main.cpp展示了写入多种数据类型:

#include <QtCore> #include "xlsxdocument.h" int main() { QXlsx::Document xlsx; 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)); // 时间 xlsx.save(); // 保存为当前工作目录 xlsx 文件 return 0; }

6. 示例工程一览

源码examples/xlsx/下共有20 个示例,可作为功能参考:

示例演示功能
hello最基础写入
demo综合演示(写数据 / 样式 / 图表)
calendar日历样式的表格生成
chart/chartsheet图表与图表工作表
conditionalformatting条件格式
datavalidation数据有效性
definename定义名称
documentproperty文档属性
extractdata读取Excel 数据
formulas公式
hyperlinks超链接
image插入图片
mergecells合并单元格
numberformat数字格式
richtext富文本
rowcolumn行列操作
style单元格样式
worksheetoperations工作表操作
xlsxwidget基于 Widget 的表格控件

构建目录

build-qtxlsx-.../examples/xlsx/<name>/

中保留了各示例的编译中间产物(

.obj/.moc/

及 Makefile),可直接用对应 Qt 环境重新生成可执行文件。


7. 常见问题与提示

  1. 依赖 Perl:仅 addon 方式编译需要;源码直接集成(方式二)不需要 Perl。

  2. Debug / Release 区分:导入库和 dll 均带d后缀表示 Debug 版,切勿混用。

  3. 路径配置:使用已编译库时,务必把include与lib路径指到本机实际目录;qt_lib_xlsx.pri里是构建机路径D:/CurPM/...,需要改写。

  4. 运行时:生成的程序除 Qt 本身 dll 外,还需把Qt5Xlsx.dll/Qt5Xlsxd.dll一并带上。

  5. 不用 qmake 时:手动定义宏XLSX_NO_LIB。

  6. 跨平台:库本身不依赖 Excel,可跨 Qt 5 支持平台使用。


需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询