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.mzph.cn/diannao/48913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

autoware.universe源码略读(3.17)--perception:occupancy_grid_map_outlier_filter

autoware.universe源码略读3.17--perception:occupancy_grid_map_outlier_filter Overview&#xff08;Class&#xff09;RadiusSearch2dfilter&#xff08;Class Constructor&#xff09;RadiusSearch2dfilter::RadiusSearch2dfilter&#xff08;mFunc&#xff09;RadiusSearc…

2月科研——arcgis计算植被差异

ArcGIS中&#xff0c;设置高于或低于某个值的像元为 -9999&#xff0c;然后将这些地方设为空——目的&#xff1a;去除异常值和黑色背景值 Con(("T_std ano7.tif" > 2) | ("T_std ano7.tif" < - 2), - 9999,"T_std ano7.tif") SetNull(&…

python基础语法 007 文件操作-1读取写入

1 文件操作 1.1 什么时候用文件操作&#xff1f; 打开文档写东西看东西拿文档做统计 在python 文档操作作用 存储数据读取数据 打开文件有什么用&#xff1f; 读取数据&#xff0c;写入数据不管什么数据都可以用open打开&#xff0c;如可复制一张图片 1.2 open() 读取,…

【嵌入式DIY实例-ESP8266篇】-LCD ST7789显示BMP280传感器数据

LCD ST7789显示BMP280传感器数据 文章目录 LCD ST7789显示BMP280传感器数据1、硬件准备与接线2、代码实现在本文中,将介绍如何通过 ESP8266 NodeMCU 开发板 (ESP-12E) 与 ST7789 TFT 显示屏连接。 在此项目中,我们将了解如何将 ESP8266 NodeMCU 板与 Bosch Sensortec 的 BMP2…

OpenAI发布迷你AI模型GPT-4o mini

本心、输入输出、结果 文章目录 OpenAI发布迷你AI模型GPT-4o mini前言OpenAI发布迷你AI模型GPT-4o mini英伟达联合发布 Mistral-NeMo AI 模型:120 亿参数、上下文窗口 12.8 万个 tokenOpenAI发布迷你AI模型GPT-4o mini 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csd…

Win10+Docker配置TensorRT环境

1.Docker下载和安装 Docker下载:Install Docker Desktop on Windows Docker安装: 勾选直接下一步就行,安装完成后需要电脑重启。 重启后,选择Accept—>Continue without signing in—>skip survey. 可以进入下面页面,并且左下角是绿色的,显示e…

用Python写一个视频采集脚本,对某网站进行批量采集

最近某牙上又出现一批高质量视频&#xff0c;听说删的很快&#xff0c;还好我会Python&#xff0c;赶紧采集下来保存&#xff01; 准备工作 环境使用 Python 3.10 解释器 Pycharm 编辑器 模块使用 requests >>> 数据请求模块 re <正则表达式模块> os <文…

unittest框架和pytest框架区别及示例

unittest框架和pytest框架区别及示例 类型unittest框架pytest框架unittest框架示例pytest框架示例安装python内置的一个单元测试框架,标准库&#xff0c;不需要安装第三方单元测试库&#xff0c;需要安装使用时直接引用 import unittest安装命令&#xff1a;pip3 install pyte…

matlab 声音信号希尔伯特黄变换

1、内容简介 略 91-可以交流、咨询、答疑 2、内容说明 略 Hilbert-Huang变换&#xff08;HHT&#xff09;是一种基于经验的数据分析方法 方法。它的扩展基础是自适应的&#xff0c;因此它可以从非线性和非平稳过程中产生具有物理意义的数据表示。这个 适应性的优势是有代价…

算法——双指针(day4)

15.三数之和 15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 题目解析&#xff1a; 这道题目说是三数之和&#xff0c;其实这和我们之前做过的两数之和是一个规律的~无非就是我们需要实时改动target的值。先排好序&#xff0c;然后固定一个数取其负值作target&#xf…

【Linux 驱动】IMX6ULL eLCDIF驱动

1. eLCDIF设备树 lcdif: lcdif021c8000 {compatible "fsl,imx6ul-lcdif", "fsl,imx28-lcdif"; //属性reg <0x021c8000 0x4000>; //起始地址 地址大小interrupts <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; …

Linux存储管理-逻辑卷管理(LVM)

逻辑卷管理&#xff08;LVM&#xff09;流程 物理磁盘/分区 -> 物理卷&#xff08;PV&#xff09;-> 加入卷组&#xff08;VG&#xff09;-> 卷组调配空间&#xff0c;制作逻辑卷&#xff08;LV&#xff09;-> 格式化 -> 挂载 -> 使用 为什么需要逻辑卷管理…

Web 性能入门指南-3.5 优化单页应用程序 (SPA)

&#x1f338; 欢迎来到前端后花园&#xff01;这里是一个温馨的小角落&#xff0c;专为热爱前端技术的你打造。没有华丽的辞藻&#xff0c;只有真诚的分享。希望你能在这里找到实用的内容&#xff0c;学到新知识&#xff0c;同时也欢迎你畅所欲言&#xff0c;分享你的思考和见…

【Linux 13】文件系统

文章目录 &#x1f308; 一、前言&#x1f308; 二、文件操作的系统接口⭐ 1. 打开文件 open⭐ 2. 关闭文件 close⭐ 3. 写入文件 write⭐ 4. 读取文件 read &#x1f308; 三、文件描述符⭐ 1. 文件描述符介绍⭐ 2. 提前被分配的文件描述符 0 1 2⭐ 3. 文件描述符的分配规则 &…

浏览器插件利器--allWebPluginV2.0.0.16-beta版发布

allWebPlugin简介 allWebPlugin中间件是一款为用户提供安全、可靠、便捷的浏览器插件服务的中间件产品&#xff0c;致力于将浏览器插件重新应用到所有浏览器。它将现有ActiveX控件直接嵌入浏览器&#xff0c;实现插件加载、界面显示、接口调用、事件回调等。支持Chrome、Firefo…

minio安装小计一则

安装minio并且使用api方式对文件进行操作 本文使用docker安装 docker pull minio/minio docker pull minio/mc &#xff08;mc为minio文件运行命令行工具&#xff09; 使用如下命令运行Minio服务器容器&#xff1a; docker run -p 9000:9000 -p 9001:9001 --name minio-…

【深度学习】大模型GLM-4-9B Chat ,微调与部署

下载好东西&#xff1a; 启动容器环境: docker run -it --gpus all --net host --shm-size8g -v /ssd/xiedong/glm-4-9b-xd:/ssd/xiedong/glm-4-9b-xd kevinchina/deeplearning:pytorch2.3.0-cuda12.1-cudnn8-devel-yolov8train bashpip install typer tiktoken numpy1.2…

Web开发:ASP.NET CORE使用Ajax定时获取后端数据

一、低难度&#xff08;刷新a标签&#xff09; 1、需求 给a标签每15s刷新一次&#xff0c;显示最新的时间&#xff08;时间必须由后端获取&#xff09; 应该如何操作呢 2、代码 后端 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Mi…

解决mysql5.0,Navicat for MySQL,IntelliJ IDEA之间中文乱码

使用软件版本 jdk-8u171-windows-x64 ideaIU-2021.1.3 mysql-essential-5.0.87-win32 navicat8_mysql_cs 这个问题我调试了好久&#xff0c;网上的方法基本上都试过了&#xff0c;终于是解决了。 三个地方结果都不一样。 方法一 首先大家可以尝试下面这种方法&#xff1a…

记录 cocos 开发问题 ,微信 wx.xxx函数 报找不到名称“wx”

今天写微信排行榜遇到 问题分享一下。 目前&#xff0c;微信、百度 和 抖音 小游戏这些平台为了保护其社交关系链数据&#xff0c;增加了 开放数据域 的概念&#xff0c;这是一个单独的游戏执行环境。开放数据域中的资源、引擎、程序&#xff0c;都和主游戏&#xff08;主域&a…