【C++/QT】QT5.6解析Excel教程(qtxlsx)

news2024/10/1 1:19:22

这里写目录标题

  • 【背景】
  • 【下载qtxlsx】
  • 【安装perl】
  • 【编译qtxlsx】
  • 【添加模块】
  • 【使用qtxlsx】

【背景】

新接触QT,很多东西都不会,刚接触一个解析Excel的demo,记录一下安装、编译、解析Excel的过程

【下载qtxlsx】

在解析之前,我们需要安装解析插件qtxlsx,该插件的源码地址为 https://github.com/dbzhang800/QtXlsxWriter
然后使用QT直接打开以下工程
在这里插入图片描述
!!!如果直接编译是会报错的的
error: Failed to run: perl -w D:\Qt\Qt5.6.0\5.6\mingw49_32\bin\syncqt.pl -mo
因为我们还需要安装 perl 来编译

【安装perl】

该工具的官网地址为:https://www.perl.org/get.html
如果是windows可直接前往:https://strawberryperl.com下载对应的(32位/64位)版本
然后无脑安装即可
在这里插入图片描述
安装完后验证是否安装成功:
win + R 输入 cmd进入窗口
然后输入 perl -v 验证是否安装成功
在这里插入图片描述

【编译qtxlsx】

在这里插入图片描述

点击构建项目即可开始编译,如果顺利的话在 [4编译输出] 有如下信息

在这里插入图片描述
此时已经编译完成
会在目录出现以下三个目录
在这里插入图片描述
(但是我的是在和项目同级目录多出一个大的文件夹,在里面才有以上三个目录)
然后我们需要将里面的内容添加到QT里

【添加模块】

此处copy https://blog.csdn.net/Y_L_John/article/details/112786586

3.1 : 拷贝上图 include文件下的文件到你的Qt安装目录,如C:\Qt\Qt5.6.0\5.6\msvc2015_64\include (直接copy,无需修改任何内容)
在这里插入图片描述

3.2 : 拷贝上图lib文件夹下 Qt5Xlsxd.lib Qt5Xlsx.lib Qt5Xlsx.prl Qt5Xlsxd.prl 4个文件到你的Qt的lib下 C:\Qt\Qt5.6.0\5.6\msvc2015_64\lib
在这里插入图片描述
3.3 : 拷贝lib文件夹下的 Qt5Xlsx.dll Qt5Xlsxd.dll 库文件到你的Qt库路径下 C:\Qt\Qt5.6.0\5.6\msvc2015_64\bin
在这里插入图片描述

3.4 : 拷贝 mkspecs\modules 文件夹下的qt_lib_xlsx.pri到你的Qt模块下 C:\Qt\Qt5.6.0\5.6\msvc2015_64\mkspecs\modules
在这里插入图片描述

此处如果不添加的话,在你的Pro文件内写 QT += xlsx 会不识别此模块

【使用qtxlsx】

在工程的pro文件中添加如下代码,将xlsx模块添加到Qt中:

QT   += xlsx

在代码中引入头文件:

#include "xlsxdocument.h"

简单操作:

1、打开xlsx文档

QXlsx::Document xlsx_file(xlsx_path);

2、遍历每个sheet

foreach( QString currentSheetName, xlsx_file.sheetNames() ) //遍历每个sheet
    {
	}

3、选择某个的sheet

 xlsx_file.selectSheet(SheetName);

4、读取某行某列

QString qs = xlsx_file.read(i, j).toString();

5、该sheet最大的行

xlsx_file.dimension().rowCount()

6、该sheet最大的列

xlsx_file.dimension().columnCount()

7、其他
写操作、图表操作见官方文档

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

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

相关文章

多传感器融合定位十-基于滤波的融合方法Ⅰ其二

多传感器融合定位十-基于滤波的融合方法Ⅰ其二3. 滤波器基本原理3.1 状态估计模型3.2 贝叶斯滤波3.3 卡尔曼滤波(KF)推导3.4 扩展卡尔曼滤波(EKF)推导3.5 迭代扩展卡尔曼滤波(IEKF)推导4. 基于滤波器的融合4.1 状态方程4.2 观测方程4.3 构建滤波器4.4 Kalman 滤波实际使用流程4…

【Python学习笔记】25.Python3 输入和输出(1)

前言 在前面几个章节中,我们其实已经接触了 Python 的输入输出的功能。本章节我们将具体介绍 Python 的输入输出。 输出格式美化 Python两种输出值的方式: 表达式语句和 print() 函数。 第三种方式是使用文件对象的 write() 方法,标准输出文件可以用…

Linux手工创建新用户

准备工作(配置流程的理解) Linux中useradd命令即一系列文件操作的结合体,所以我们可以通过查看useradd命令来确认我们手工创建新用户需要完成的文件配置 找到man useradd中涉及的文件部分 对于手工创建用户有用的文件: /etc/pas…

jvm学习的核心(五)---垃圾回收算法和常见垃圾回收器

文章目录1.垃圾回收算法**1.1. 标记阶段****1.2. 清除阶段**1.2.1.标记清除算法1.2.2.标记复制算法1.2.3.标记整理算法1.3.引用2.常见的垃圾回收器2.1.Serial回收器2.2.ParNew回收器2.3.Parallel回收器2.4.CMS回收器<font color red>2.5.G1垃圾回收器ZGC回收器&#xff…

2月面经:真可惜...拿了小米的offer,字节却惨挂在三面

我是2月份参加字节跳动和华为的面试的&#xff0c;虽然我只拿下了小米的offer&#xff0c;但是我自己也满足了&#xff0c;想把经验分享出来&#xff0c;进而帮助更多跟我一样想进大厂的同行朋友们&#xff0c;希望大家可以拿到理想offer。 自我介绍 我是16年从南京工业大学毕…

java ssm idea高校图书借阅管理系统设计2z87z

本论文是以构建高校图书管理系统设计为目标&#xff0c;使用 jsp制作&#xff0c;由前台用户图书借阅、后台管理员图书分类两大部分组成。着重论述了系统设计分析&#xff0c;系统的实现&#xff08;用户注册模块&#xff0c;用户登录&#xff0c;用户图书借阅模块&#xff0c;…

ONNXRUNTUIME c++使用与相关资料(暂记)

下面的教程是在linux系统上运行的&#xff0c;如果想在windows系统上运行&#xff0c;可以看官方链接或中文教程https://bbs.huaweicloud.com/blogs/335706&#xff0c;官方链接中有完整的VS的带.sln的项目。 ONNXRUNTUIME OPENCV不支持某些算子(挤压层在opencv 中不支持) 安…

开关电源环路稳定性分析(10)——OPA和OTA型补偿器传递函数

大家好&#xff0c;这里是大话硬件。 在前面9讲的内容中将开关电源环路分析进行了梳理&#xff0c;我相信很多人即使都看完了&#xff0c;应该还是不会设计&#xff0c;而且还存在几个疑问。比如我随便举几个&#xff1a; 开关电源的带宽怎么设定&#xff1f;开关电源精度和什…

IDEA下java程序的调试(简易实例图示版)

在线排版不太好看&#xff0c;介意的读者可下载word下来看&#xff1a;https://download.csdn.net/download/xijinno1/87441301IDEA下java程序的简单调试-System.out.println首先本次进行调试的一个程序是实现从1累加到100的功能&#xff0c;是在IDEA下进行编写的。如图所示&am…

1626_MIT 6.828 lab1课程大纲学习过程整理

全部学习汇总&#xff1a; GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 现在lab1的内容全都学习完了&#xff0c;该做的练习也都做了。接下来&#xff0c;整理一下自己看这一部分课程讲义的一些笔记。 整理之前&#xff0c;先把自己完成…

c# 跑马灯显示

//本文演示跑马灯//用到了线程、同步委托using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Threading;using System.IO;nam…

鲜花数据集实验结果总结

从read_split_data中得到&#xff1a;训练数据集&#xff0c;验证数据集&#xff0c;训练标签&#xff0c;验证标签。的所有的具体详细路径 数据集位置&#xff1a;https://download.csdn.net/download/guoguozgw/87437634 import os #一种轻量级的数据交换格式&#xff0c; …

常见漏洞之 struts2+ jboss

数据来源 本文仅用于信息安全的学习&#xff0c;请遵守相关法律法规&#xff0c;严禁用于非法途径。若观众因此作出任何危害网络安全的行为&#xff0c;后果自负&#xff0c;与本人无关。 01 Struts2相关介绍 》Struts2概述 》Struts2历史漏洞&#xff08;1&#xff09; 》…

【Linux】Linux多线程(下)

前言 大家好呀,欢迎来到我的Linux学习笔记~ 本篇承上Linux多线程创建,线程互斥(互斥锁),线程同步(条件变量),继下接着学习线程同步的另一个信号量,以及后序的线程池&#xff0c;线程的懒汉单例模式和其他锁相关知识。&#xff08;注意本篇博客代码居多&#xff09; Linux多线程…

C++005-C++选择与分支2

文章目录C005-C选择与分支2条件语句C实现else if 语句题目描述 根据成绩输出成绩等级ABCDEif嵌套语句题目描述 输出三个数中的最大值题目描述 模拟游戏登录switch语句三元运算符题目描述 输出三个数中的最大值-基于3元运算符题目描述 根据1-7输出星期1-星期日案例练习题目描述 …

php的api系统,php api 框架

本文目录一览&#xff1a; 1、php如何开发API接口2、什么是API&#xff1f;PHP的API怎么写&#xff1f;3、API和PHP是什么关系4、php中的API接口怎么写 ?5、如何使用PHP搭建一个restFul风格的API系统6、PHP 的API接口 php如何开发API接口 比如一个自定义函数&#xff1a;fun…

【遇见青山】项目难点:缓存击穿问题解决方案

【遇见青山】项目难点&#xff1a;缓存击穿问题解决方案1.缓存击穿互斥锁&#x1f512;方案逻辑过期方案2.基于互斥锁方案的具体实现3.基于逻辑过期方案的具体实现1.缓存击穿 缓存击穿问题也叫热点Key问题&#xff0c;就是一个被高并发访问并且缓存重建业务较复杂的key突然失效…

RuoYi-Cloud 部署

RuoYi-Cloud部署 1. 下载 点击右侧链接可以进入gitee的源码下载地址&#xff1a; 偌依微服务源码gitee下载地址 2. 数据库部署 依据如下步骤创建系统所需数据环境&#xff0c;脚本执行没有先后次序要求&#xff1a; 在Mysql 中创建 ry-cloud 主数据库&#xff0c;并执行 …

初学者必读:讲解 VC 下如何正确的创建、管理及发布项目

Visual C 的项目文件组成&#xff0c;以及如何正确的创建及管理项目。 本内容是初学者必须要掌握的。不能正确的管理项目&#xff0c;就不能进一步写有规模的程序。 一、项目下各种常见文件类型的功能 1. 代码文件 扩展名为 .cpp、.c、.h 等。 通常情况下&#xff0c;项目…

【Java】Help notes about JAVA

JAVA语言帮助笔记Java的安装与JDKJava命名规范JAVA的数据类型自动类型转换强制类型转换JAVA的运算符取余运算结果的符号逻辑运算的短路运算三元运算符运算符优先级JAVA的流程控制分支结构Java的安装与JDK JDK安装网站&#xff1a;https://www.oracle.com/java/technologies/do…