QXlsx Qt操作excel(1)

QXlsx 是一个用于处理Excel文件的开源C++库。它允许你在你的C++应用程序中读取和写入Microsoft Excel文件(.xlsx格式)。该库支持多种操作,包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。

关于QXlsx的下载、安装、包含到项目中,源代码中如何引用,请看上一篇《https://blog.csdn.net/zhouhui1982/article/details/136021940》介绍。

本章节将详细介绍如何使用QXlsx创建新的工作簿、写入单元格数据、合并单元格、格式化单元格、设置单元格样式等操作。

引用QXlsx头文件:

#include "xlsxdocument.h"

#include "xlsxformat.h"

#include "xlsxcellrange.h"

#include "xlsxchart.h"

#include "xlsxworkbook.h"

代码实现:

QDateTime save_time=QDateTime::currentDateTime();//时间

QString dir = qApp->applicationDirPath();

bool exist;

QDir *folder = new QDir();

QString historydir="/检测报告";

exist = folder->exists(dir+historydir);//文件夹是否存在

if(!exist)folder->mkdir(dir+historydir);//不存在创建文件夹

QXlsx::Document xlsx;

//格式化单元格样式

QXlsx::Format formatTitle;

formatTitle.setFontBold(true);// 粗体

formatTitle.setFontColor(QColor(Qt::black));//文字颜色

formatTitle.setFontSize(12);//字体大小

formatTitle.setBorderStyle(QXlsx::Format::BorderThin);//边框样式,细网格线

// formatTitle.setPatternBackgroundColor(Qt::lightGray);//单元格背景色

formatTitle.setFillPattern(QXlsx::Format::PatternSolid);//填充样式

formatTitle.setHorizontalAlignment(QXlsx::Format::AlignHCenter);//文本水平居中

formatTitle.setVerticalAlignment(QXlsx::Format::AlignVCenter);//文本垂直居中

formatTitle.setTextWrap(true);//设置自动换行

xlsx.setColumnWidth(1,25);//第一列,100列宽

xlsx.setColumnWidth(2,30);//第一列,100列宽

xlsx.setColumnWidth(3,20);//第一列,100列宽

xlsx.setColumnWidth(4,15);//第一列,100列宽

//绘制第一行标题

xlsx.mergeCells(QXlsx::CellRange(1,1,1,4), formatTitle);//合并单元格

xlsx.setRowHeight(1,40);//设置第1行高度

formatTitle.setFontSize(22);//字体大小

xlsx.write(1,1,"试验报告",formatTitle);

formatTitle.setFontSize(12);//字体大小

//绘制第二行

xlsx.mergeCells(QXlsx::CellRange(2,1,2,4), formatTitle);//合并单元格

xlsx.write(2,1,"人员:张三 时间:"+save_time.toString("yyyy-MM-dd hh:mm:ss"),formatTitle);

xlsx.setRowHeight(2,20);//设置第1行高度

xlsx.mergeCells(QXlsx::CellRange(3,1,3,4), formatTitle);//合并单元格

xlsx.setRowHeight(3,20);//设置高度

xlsx.write(3,1,"设备编号:0001 ",formatTitle);

xlsx.write(4,1,"试验项目",formatTitle);

xlsx.write(4,2,"参考范围",formatTitle);

xlsx.write(4,3,"试验数据",formatTitle);

xlsx.write(4,4,"是否合格",formatTitle);

xlsx.setRowHeight(4,20);//设置高度

xlsx.write(5,1,"发动机",formatTitle);

xlsx.write(5,2,"联合起动",formatTitle);

xlsx.write(5,3,"各起动一次",formatTitle);

xlsx.write(5,4,"合格",formatTitle);

xlsx.write(6,1,"发动机转速",formatTitle);

xlsx.write(6,2,"800r/min,油压应不小于0.15MPa",formatTitle);

xlsx.write(6,3,"油压>0.15",formatTitle);

xlsx.write(6,4,"不合格",formatTitle);

//人员签字单元格样式

QXlsx::Format formatTitle1;

formatTitle1.setFontSize(15);//字体大小

formatTitle1.setBorderStyle(QXlsx::Format::BorderNone);//边框样式

formatTitle1.setHorizontalAlignment(QXlsx::Format::AlignRight);//文本水平

formatTitle1.setVerticalAlignment(QXlsx::Format::AlignBottom);//文本垂直

xlsx.mergeCells(QXlsx::CellRange(26,1,26,4), formatTitle1);//合并单元格

xlsx.setRowHeight(26,30);//设置高度

xlsx.write(26,1,"试验人员:_____________ ",formatTitle1);

// 保存文件 文件名格式:试验报告yyyy-MM-dd hh-mm-ss.xlsx

QString strpath=dir+historydir+"/"+save_time.toString("试验报告yyyy-MM-dd hh-mm-ss")+".xlsx";

xlsx.saveAs(strpath);

//释放指针变量

xlsx.deleteLater();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/676029.shtml

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

相关文章

SQL拆分字段内容(含分隔符)

问题描述: 在做数据迁移的过程中,我们希望对表中的某个字段根据分隔符进行拆分,得到多条数据,原代码有点意思,因此记录一下。 我们假设某条数据如下: IDSTRS1公司名称不能小于四个字,行业类别…

【OrangePi Zero2的系统移植】OrangePi Zero2 SDK说明

一、使用环境要求 二、获取Linux SDK 三、首次编译完整SDK 基于OrangePi Zero2的系统移植 之前我们讲解香橙派的使用时, 都是直接在香橙派上进行代码编译, 但在实际的项目开发过程中,更多 的还是使用交叉编译环境进行代码的编译。再编译完成…

卷积层Conv1d包含的元素分别是什么,经过卷积层,数据的形状发生变化吗?

nn.Conv1d 是一个一维卷积层,它通常用于处理序列数据,如时间序列或文本数据。这个层包含以下主要元素: 输入通道数(In_channels):这是输入数据的通道数。对于单通道数据(如灰度图像或单变量时间…

医学三基答案在哪搜?4个大学生必备的搜题 #知识分享#职场发展

今天,我将分享一些受欢迎的、被大学生广泛使用的日常学习工具,希望能给你的学习生活带来一些便利和启发。 1.颐博咨询 这是一个网站 找题好用的在线搜题站,快考不限次搜题助手,问题截图搜题软件,练题通关考试试题大全。 2.题小聪 这是一个公众号 这…

macbookair怎么清理内存 ?如何利用 CleanMyMac X 进行系统清理

macbookair怎么清理内存 清理MacBook Air的内存可以通过以下几种方法: 优化储存空间。在MacBook Air上,可以通过“优化储存空间”来释放空间。这包括将文件储存在iCloud中,如桌面、文稿和iCloud信息,以及自动移除在iCloud中观看…

CSP-202203-1-未初始化警告

CSP-202203-1-未初始化警告 难点:时间复杂度 【核心】:统计输入的k组“赋值”中,右值不为0且未在先前作为左值出现过的次数【坑!】本题直接通过暴力枚举时间复杂度很可能过不了 【90分思路】 定义数组 initialized 用来存储已经处理过的左…

从中序与后序遍历序列构造二叉树

给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7], postorder [9,15,7,20,3] 输出:[3…

Flink CDC 与 Kafka 集成:Snapshot 还是 Changelog?Upsert Kafka 还是 Kafka?

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,京东购书链接:https://item.jd.com/12677623.html,扫描左侧二维…

MySQL-SQL优化

文章目录 1. SQL性能分析1.1 SQL执行频率1.2 慢查询日志1.3 profile详情1.4 explain 2. SQL优化2.1 Insert 优化2.2 Group By 优化2.3 Order By 优化2.4 Limit 优化2.5 Count() 优化2.6 Update 优化 3. 拓展3.1 请你说一下MySQL中的性能调优的方法?3.2 执行 SQL 响应…

堆的概念实现

前言 本文将详细讲解堆。堆是一种二叉树(一般是完全二叉树)使用顺序结构的数组来存储。 tip:这里我们需要注意区分堆在不同地方的含义,这里的堆是一个数据结构,操作系统虚拟进程地址空间的堆是操作系统中管理内存的一块…

kubernetes镜像仓库harbor

一、镜像仓库的种类 GitHub GitHub有付费版和免费版,目前默认的docker镜像拉取策略是从GitHub上进行拉取gitee 国内harbor私有仓库二、harbor仓库规划设计 私有镜像仓库 Harbor 安装和配置 新创建一台虚拟机安装harbor, 配置如下: 主机名ip配置网络harbor192.168.1.204VCPU/…

「深度学习」长短时记忆网络LSTM

一、经典模型 \widetilde{c}^{<t>} tanh(w_{c}[a^{<t-1>},x^{<t>}]b_{c}) 更新门&#xff1a;\Gamma_{u} \sigma(w_{u}[a^{<t-1>},x^{<t>}]b_{u}) 遗忘门&#xff1a;\Gamma_{f} \sigma(w_{f}[a^{<t-1>},x^{<t>}]b_{f}) 输出门…

svg 进阶

svg 进阶 svg 应用场景 绘制 icon绘制动画 svg viewport 和 viewBox viewport 是 svg 图像的可见区域 viewBox 是用于在画布上绘制 svg 图形的坐标系统 在一下案例中 svg中 width“500” height“200” 就是可视区域 比如你的svg是100X100但是你的可视区域只有20X20 那么他…

职业性格测试在求职应聘跳槽中的应用

人的性格总是千奇百怪&#xff0c;有的人总是想迎接挑战&#xff0c;超越自己&#xff0c;不停的奔着高处走&#xff0c;然而有的人总是喜欢随遇而安&#xff0c;踏踏实实一辈子&#xff0c;有份安稳的工作&#xff0c;有吃有喝就好。那么对于哪些喜欢迎接挑战&#xff0c;但又…

《MySQL 简易速速上手小册》第4章:数据安全性管理(2024 最新版)

文章目录 4.1 用户认证和权限控制4.1.1 基础知识4.1.2 重点案例&#xff1a;使用 Python 管理 MySQL 用户权限4.1.3 拓展案例 4.2 防止 SQL 注入和其他安全威胁4.2.1 基础知识4.2.2 重点案例&#xff1a;使用 Python 和 MySQL 进行安全的数据查询4.2.3 拓展案例 4.3 数据加密和…

边缘人工智能的发展 —— 边缘AI图形化开发

1、背景 边缘人工智能是指直接在边缘设备上运行的机器学习算法的形式使用人工智能。这里的“边缘设备”指的是网络边缘的设备&#xff0c;例如智能手机、传感器、工业机器人等。这些设备具备数据处理和机器学习算法运行的能力&#xff0c;可以在本地进行必要的数据操作并发送&…

Android Studio无法安装Git问题解决(折中方案)

安装配置好studio&#xff0c;往往会使用git克隆github上面的项目&#xff0c;但是却发现git无法正确安装&#xff0c;本文将介绍如何解决git无法安装这一问题。 对于git安装&#xff0c;实际比较复杂&#xff0c;可以参考这一篇博客。 Git 详细安装教程&#xff08;详解 Gi…

二维差分---三维差分算法笔记

文章目录 一.二维差分构造差分二维数组二维差分算法状态dp求b[i][j]数组的二维前缀和图解 二.三维前缀和与差分三维前缀和图解:三维差分核心公式图解:模板题 一.二维差分 给定一个原二维数组a[i][j],若要给a[i][j]中以(x1,y1)和(x2,y2)为对角线的子矩阵中每个数都加上一个常数…

Java SE多态

文章目录 1.多态&#xff1a;1.1.什么是多态&#xff1a;1.2.多态实现条件&#xff1a;1.2.1.重写&#xff1a;1.2.2.向上转型&#xff1a; 1.多态&#xff1a; 1.1.什么是多态&#xff1a; 多态的概念&#xff1a;通俗来说&#xff0c;就是多种形态&#xff0c;具体点就是去…

54.螺旋矩阵(Java)

题目描述&#xff1a; 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 输入&#xff1a; matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a; [1,2,3,6,9,8,7,4,5] 代码实现&#xff1a; import java.util.ArrayLi…