QtXlsx的基本使用

前言

在很多时候 ,我们需要将数据导出,之前我是将数据表导出为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。

下载源代码。

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

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

qmake
make
make install

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

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

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

    QT += xlsx

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

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

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

1、首先拷贝include目录下的QtXlsx目录到Qt的安装目录下,比如我的拷贝到:
D:\Qt\Qt5.7.0\5.7\msvc2013_64\include 

2、接下来拷贝ib文件夹下Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl4个文件到你的Qt的lib下:
D:\Qt\Qt5.7.0\5.7\msvc2013_64\lib 

3、拷贝lib文件夹下的Qt5Xlsx.dll Qt5Xlsxd.dll库文件到你的Qt库路径下
D:\Qt\Qt5.7.0\5.7\msvc2013_64\bin 

4、拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下 
D:\Qt\Qt5.7.0\5.7\msvc2013_64\mkspecs\modules 

接下来就可以使用Qt进行excel的操作了,只是需要注意:
使用的时候需要包含头文件

#include <QtXlsx>
在你的qmake .pro 需要添加:
QT += xlsx
完毕之后,最好先qmake 在构建工程,否则会提示连接不到库。 
之后就可以运行自己的QtXlsx项目了

用法(2):直接使用源代码

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

下载源代码。

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

|-- project.pro
|-- ....
|-- 3rdparty\
|     |-- qtxlsx\
|     |

将以下行添加到您的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

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

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

2、QtXlsx下载地址

https://github.com/dbzhang800/QtXlsxWriter

3、运行官方例子

运行QtXlsx例子,需要首先安装Perl 否则用Qt编译QtXlsx库时会报错。
Perl 下载地址:https://www.activestate.com/activeperl/downloads
下好之后默认安装即可

将下载好的QtXlsx解压后,使用Qtcreater打开qxlsx.pro文件,构建。
这里写图片描述
现在,选择你喜欢的例子试试看吧!

这里写图片描述

### 如何在 Qt6 中使用 QTXLSX 库读写 Excel 文件 #### 安装和配置 QTXLSX 库 为了能够在项目中使用 `QtXlsx`,首先需要安装该库。可以通过包管理器或手动下载源码并编译安装。 对于基于 CMake 的新版本 Qt 项目,在项目的 `.pro` 或者 `CMakeLists.txt` 文件中添加相应的依赖项: ```cmake find_package(Qt6 COMPONENTS Xlsx REQUIRED) target_link_libraries(myProject PRIVATE Qt6::Xlsx) ``` 如果使用的是 qmake 构建系统,则可以在 .pro 文件里加入如下语句[^1]: ```qmake QT += xlsx ``` #### 创建工作簿对象 创建一个新的 Excel 工作簿实例,这将是后续所有操作的基础: ```cpp #include "xlsxdocument.h" using namespace QXlsx; Document xlsx; ``` 这段代码初始化了一个新的空白文档对象 `xlsx`,准备进行进一步的数据填充或其他编辑动作[^3]. #### 向单元格写入数据 向指定位置的单元格内输入字符串、数值等内容十分简便: ```cpp // 设置 A1 单元格的内容为 "Hello, world!" xlsx.write(1, 1, QStringLiteral("Hello, world!")); // 将 B2 设定成数字型态,并赋值为 42 xlsx.write(2, 2, 42); ``` 这里通过调用 `write()` 方法指定了行列坐标以及要存储的信息类型(自动识别),从而实现了简单的数据录入过程. #### 添加样式与格式化 除了基本的文字记录外,还可以应用字体颜色、背景色等视觉效果增强表格美观度: ```cpp QColor red("#FF0000"); xlsx.format(3, 3).setFontBold(true); // 加粗显示 D3 单元格中的文字 xlsx.format(3, 3).setBackgroundColor(red); // 更改 E3 背景色至红色 ``` 上述片段展示了如何利用 `format()` 函数获取特定区域内的格式描述符,并对其属性做出调整[^2]. #### 保存文件到磁盘 完成所有的修改之后,记得把最终成果导出成为实际存在的物理文件: ```cpp if (!xlsx.saveAs(QStringLiteral("output.xlsx"))) { qDebug() << "Failed to save the file."; } ``` 此部分逻辑判断是否成功完成了文件系统的写入请求;如果不满足条件则输出错误提示信息给开发者查看. #### 打开现有 Excel 文件 当面对已经存在且需继续加工处理的情况时,可采用下面的方式加载已有资源: ```cpp bool isOpened = m_excelopera.OpenFile("test1.xlsx"); qDebug()<<isOpeneds; ``` 此处尝试打开名为 `"test1.xlsx"` 的本地文件,并打印其状态以便确认操作结果.
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值