当前位置: 首页 > news >正文

QXlsx读写excel

QXlsx读写excel

      • 安装 QXlsx
        • 使用 qmake
        • 使用 CMake
      • 基本用法
        • 1. 写入 Excel 文件
        • 2. 读取 Excel 文件
      • 详细用法
        • 1. 设置单元格样式
        • 2. 合并单元格
        • 3. 创建图表
        • 4. 设置列宽和行高
      • 完整示例

QXlsx 是一个用于在 Qt 应用中读写 Excel 文件的第三方库。它提供了丰富的 API,可以方便地操作 Excel 文件的内容。以下是关于 QXlsx 的详细介绍,包括安装、基本用法、读取和写入 Excel 文件的示例。

安装 QXlsx

使用 qmake
  1. 下载 QXlsx 库源代码:QXlsx GitHub
  2. 将下载的文件解压到你的项目目录中。
  3. 在你的 .pro 文件中添加以下内容:
include(path/to/qtxlsx/src/xlsx/xlsx.pri)

在这里插入图片描述

使用 CMake
  1. 下载 QXlsx 库源代码:QXlsx GitHub
  2. 将下载的文件解压到你的项目目录中。
  3. 在你的 CMakeLists.txt 中添加以下内容:
add_subdirectory(path/to/qtxlsx)
target_link_libraries(your_project Qt5::Xlsx)

基本用法

1. 写入 Excel 文件

下面的示例代码展示了如何使用 QXlsx 库创建一个新的 Excel 文件并写入一些数据。

#include <QCoreApplication>
#include <QXlsx>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QXlsx::Document xlsx;// 写入数据xlsx.write("A1", "Hello");xlsx.write("B2", 123);xlsx.write("C3", "=SUM(B2, 1)"); // 写入公式// 保存文件xlsx.saveAs("example.xlsx");return a.exec();
}
2. 读取 Excel 文件

下面的示例代码展示了如何使用 QXlsx 库读取一个已存在的 Excel 文件中的数据。

#include <QCoreApplication>
#include <QXlsx>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QXlsx::Document xlsx("example.xlsx");// 读取数据QVariant value1 = xlsx.read("A1");QVariant value2 = xlsx.read("B2");QVariant value3 = xlsx.read("C3");qDebug() << "A1:" << value1.toString();qDebug() << "B2:" << value2.toInt();qDebug() << "C3:" << value3.toString();return a.exec();
}

详细用法

1. 设置单元格样式

可以设置单元格的字体、颜色、对齐方式等。

QXlsx::Format format;
format.setFontColor(Qt::red);
format.setFontBold(true);xlsx.write("A1", "Styled Text", format);
2. 合并单元格

可以合并多个单元格。

xlsx.mergeCells("A1:B2");
xlsx.write("A1", "Merged Cells");
3. 创建图表

可以创建图表并插入到 Excel 文件中。

QXlsx::Chart *chart = xlsx.insertChart(3, 3, QSize(300, 300));
chart->setChartType(QXlsx::Chart::CT_Line);QXlsx::CellRange range("A1:B2");
chart->addSeries(range);
4. 设置列宽和行高

可以设置指定列的宽度和指定行的高度。

xlsx.setColumnWidth(1, 20); // 设置第一列的宽度为20
xlsx.setRowHeight(1, 30);   // 设置第一行的高度为30

完整示例

以下是一个综合示例,展示了如何使用 QXlsx 库进行更多操作。

#include <QCoreApplication>
#include <QXlsx>int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);QXlsx::Document xlsx;// 写入数据和设置样式QXlsx::Format format;format.setFontColor(Qt::blue);format.setFontBold(true);xlsx.write("A1", "Hello World", format);// 合并单元格xlsx.mergeCells("A2:B3");xlsx.write("A2", "Merged Cells");// 设置列宽和行高xlsx.setColumnWidth(1, 20);xlsx.setRowHeight(2, 30);// 创建图表xlsx.write("A5", 10);xlsx.write("A6", 20);xlsx.write("B5", 30);xlsx.write("B6", 40);QXlsx::Chart *chart = xlsx.insertChart(7, 1, QSize(300, 300));chart->setChartType(QXlsx::Chart::CT_Line);QXlsx::CellRange range("A5:B6");chart->addSeries(range);// 保存文件xlsx.saveAs("example.xlsx");return a.exec();
}

通过上述内容,你应该可以掌握使用 QXlsx 库进行 Excel 文件的读写操作。QXlsx 提供了丰富的 API,可以满足大部分对 Excel 文件操作的需求。

其他QT文章
1. QT开发环境安装以配置。
2. QT线段画板实战
3. 半小时玩转QT桌面系统托盘(含托盘消息)
4. QT入门开发一个时钟
5. 半小时教你做大转盘游戏(QT篇)
6. 手把手教你制作【带吸附效果的线段绘制】(QT)
7. 手把手教你开发-滚动效果号码抽奖(QT)
8. 100行代码实现贪吃蛇小游戏
9.C++实现《扫雷》游戏(入门经典)
10. svg转图片工具开发
11. Qt网路与通信(获取本机网络信息)
12. Qt网路与通信(UDP客户与服务)
13. Qt网络与通信(TCP聊天室)
14. Qt多线程以及线程池
15. Qt散点图、折线图、柱状图、盒须图、饼状图、雷达图开发实例
16. 取色器(QT)
17. MQTT客户端入门开发
18.QT文件上传带进度条实例(含源码)
19. Qt音乐播放器开发实例(可毕设含源码)
20. Qt学生管理系统-- 数据库课程设计(付源码)

http://www.lryc.cn/news/404654.html

相关文章:

  • 昇思25天学习打卡营第13天 | mindspore 实现 ShuffleNet 图像分类
  • C语言超市管理系统UI界面
  • BUUCTF逆向wp [MRCTF2020]Xor
  • Windows版MySQL5.7解压直用(如何卸载更换位置重新安装)
  • 详解数据结构之二叉树(堆)
  • Linux----Mplayer音视频库的移植
  • STM32测测速---编码电机读取速度的计算
  • 【已解决】服务器无法联网与更换镜像源
  • android11 屏蔽usb通过otg转接口外接鼠标设备
  • HAL库源码移植与使用之RTC时钟
  • GIT命令学习 一
  • VS+QT 打包可执行文件.exe
  • Android笔试面试题AI答之Activity(2)
  • 来自Transformers的双向编码器表示(BERT) 通俗解释
  • 代码随想录第十六天|贪心算法(2)
  • 花几千上万学习Java,真没必要!(二十二)
  • 在RK3568上如何烧录MAC?
  • 1.30、基于卷积神经网络的手写数字旋转角度预测(matlab)
  • Windows如何使用Python的sphinx
  • C++ STL nth_element 用法
  • 【PostgreSQL教程】PostgreSQL 选择数据库
  • C# —— HashTable
  • LeetCode 第407场周赛个人题解
  • 使用Django框架实现音频上传功能
  • [路由器]IP-MAC的绑定与取消
  • Idea配置远程开发
  • lua 实现 函数 判断两个时间戳是否在同一天
  • 工作纪实53-log4j日志打印文件隔离
  • 7月21日,贪心练习
  • FPGA DNA 获取 DNA_PORT