一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

前言
  在很多时候 ,我们需要将数据导出,之前我是将数据表导出为CSV格式,CSV文件虽然可以用Excel打开,但相对于真正的Xlsx文件,还是有许多不足的。偶然之间,发现了QtXlsx这个第三方库。

1、QtXlsx官网对QtXlsx的介绍
  官网:http://qtxlsx.debao.me/

QtXlsx简介:

  QtXlsx是一个可以读取和写入Excel文件的库。它不需要Microsoft Excel,可以在Qt5支持的任何平台上使用。该库可以用来:

  • 从头开始生成一个新的.xlsx文件
  • 从现有的.xlsx文件中提取数据
  • 编辑现有的.xlsx文件

入门

对于linux用户,如果你的Qt是通过诸如“apt-get”等软件包管理工具安装的,请确保你已经安装了Qt5开发软件包qtbase5-private-dev

用法(1):使用Xlsx作为Qt5的插件模块

构建模块
  注意:在这一步中需要Perl。

下载源代码。

把源代码放在你喜欢的任何目录中

转到终端中项目的顶层目录并运行

1 qmake
2 make
3 make install

库,头文件等将被安装到您的系统中。

make html_docs可用于生成库的文档,make check并可用于运行库的单元测试。

使用模块
将以下行添加到您的qmake项目文件中:

QT += xlsx

然后,在你的代码中使用Qt Xlsx

复制代码
1     #include "xlsxdocument.h"
2     int main()
3     {
4         QXlsx::Document xlsx;
5         xlsx.write("A1", "Hello Qt!");
6         xlsx.saveAs("Test.xlsx");
7         return 0;
8     }
复制代码

笔者注:如果在Windows中,不会用qmake,安装好Perl后,构建源码项目,将生成的对应文件拷贝到Qt安装目录:

复制代码
 1 1、首先拷贝include目录下的QtXlsx目录到Qt的安装目录下,比如我的拷贝到:
 2 D:\Qt\Qt5.7.0\5.7\msvc2013_64\include 
 3 
 4 2、接下来拷贝ib文件夹下Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl4个文件到你的Qt的lib下:
 5 D:\Qt\Qt5.7.0\5.7\msvc2013_64\lib 
 6 
 7 3、拷贝lib文件夹下的Qt5Xlsx.dll Qt5Xlsxd.dll库文件到你的Qt库路径下
 8 D:\Qt\Qt5.7.0\5.7\msvc2013_64\bin 
 9 
10 4、拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下 
11 D:\Qt\Qt5.7.0\5.7\msvc2013_64\mkspecs\modules 
12 
13 接下来就可以使用Qt进行excel的操作了,只是需要注意:
14 使用的时候需要包含头文件
15 
16 #include <QtXlsx>
17 在你的qmake .pro 需要添加:
18 QT += xlsx
19 完毕之后,最好先qmake 在构建工程,否则会提示连接不到库。 
20 之后就可以运行自己的QtXlsx项目了
复制代码
用法(2):直接使用源代码

该软件包包含一个qtxlsx.pri文件,该文件允许您将组件集成到使用qmake进行构建步骤的应用程序中。

下载源代码。

把源代码放在你喜欢的任何目录中。例如,第三方:

1 |-- project.pro
2 |-- ....
3 |-- 3rdparty\
4 |     |-- qtxlsx\
5 |     |

将以下行添加到您的qmake项目文件

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

如果你喜欢,你可以将src / xlsx中的所有文件复制到应用程序的源路径中。然后将以下行添加到您的项目文件中:

include(qtxlsx.pri)
Note: If you do not use qmake, you need to define the following macro manually
XLSX_NO_LIB

然后,在你的代码中使用Qt Xlsx

复制代码
1     #include "xlsxdocument.h"
2     int main()
3     {
4         QXlsx::Document xlsx;
5         xlsx.write("A1", "Hello Qt!");
6         xlsx.saveAs("Test.xlsx");
7         return 0;
8     }
复制代码

笔者用的第二种方法,个人认为比第一种方便

2、QtXlsx下载地址
  https://github.com/dbzhang800/QtXlsxWriter

3、运行官方例子

运行QtXlsx例子,需要首先安装Perl 否则用Qt编译QtXlsx库时会报错。

Perl 下载地址:https://www.activestate.com/activeperl/downloads下好之后默认安装即可

将下载好的QtXlsx解压后,使用Qtcreater打开qxlsx.pro文件,构建。

 现在,选择你喜欢的例子试试看吧!

 

posted on   一杯清酒邀明月  阅读(1964)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示