首页 > 其他分享 >Qt QXlsx(访问Excel)

Qt QXlsx(访问Excel)

时间:2023-03-22 16:47:57浏览次数:43  
标签:QXlsx Qt 文件 Excel xlsx Document

再Qt中已经有了QAxObject来访问Excel,但访问的是微软的com,只能访问正版的Excl中的 .xls//xlsx ,而且使用起来及其不方便(本人亲测)。

在这里使用QXlsx,能更简单的访问Excel数据,但QXlsx这个类并没有在Qt Creator中,所以需要自己导入。

配置的方式有两种:

第一种:直接在你的编译器上安装Xlsx(需要安装Perl,需要下载QtXlsx源代码)

安装完后在文件中需要添加:

pro文件中添加:

QT +=xlsx

添加头文件:

 #include <QtXlsx/QtXlsx>

创建一个项目:

1.pro文件添加:

 2. 添加头文件:

 3.构造函数中添加内容:

  4.运行之后打开项目文件:

 5.打开该文件:

第二种方式:

直接在项目中添加源代码(只需要下载QtXlsx源代码)

1.在项目中创建一个文件夹(存放源代码)

2.把下载到的QtXlsx源代码复制到该文件

源代码文件的 src文件,复制该文件

 粘贴到项目文件下的Qt_xlsx:

 3.在pro文件中引入源代码:

 具体的解释为:

./Qt_xlsx/src/xlsx/qtxlsx.pri

  •  当前项目下的Qt_xlsx 下的src/xlsx/qtxlsx.pri
  • Qt_xlsx 是我们创建的文件名,后面的就不需要修改

  4.点击左下方的构建,然后在文件中会显示添加的文件:

  5.需要添加头文件:

#include"xlsxdocument.h"

6.在构造函数中添加以下代码:

1     QXlsx::Document xlsx;
2     xlsx.write("A1", "Hello xlsx!");
3     xlsx.saveAs("Test.xlsx");

6.运行后打开项目运行文件:

以上就是在Qt Creator中如何添加 Qt xlsx。 

Qt xlsx的具体用法:

在这里具体介绍一下Excel中的一些名词:

Workbook(工作簿):打开一个Excel后,Excel中的数据会形成工作簿

工作簿中可能会含有多个表

Worksheet(工作表) :获取工作簿中的一个工作表

 Cell(单元格):工作表中的一格

 Format(格式):单元格中可以设置格式

Document(文档类)

用来处理Excel文件中的内容

常用的函数:

 

1.创建一个Qt xlsx对象:

 1 //方法1
 2  
 3 QXlsx::Document xlsx;
 4  
 5 //方法2
 6  
 7 如果要省略QXlsx::
 8  
 9 using QXlsx::Document;
10  
11 Document xlsx;

2.写入和读取Excel数据

 1     QXlsx::Document xlsx("Test.xlsx");//打开该Excel文件
 2     //写入数据
 3     for(int i=1;i<10;i++)
 4     {
 5         for(int j=1;j<10;j++)
 6         {
 7             xlsx.write(i,j,i*j*10);
 8         }
 9     }
10     //读取数据
11     for(int n=1;n<10;n++)
12     {
13         for(int m=1;m<10;m++)
14         {
15             qDebug()<<xlsx.read(n,m);
16  
17         }
18     }
19     xlsx.save();//保存文件

  输出的数据:

注意存储的数据的类型为QVariant

  3.输出工作列表:

1     QXlsx::Document xlsx("Test.xlsx");//打开该Excel文件
2     QStringList list;
3     list=xlsx.sheetNames();//获取工作列表
4     for(QString &data:list)
5     {
6         qDebug()<<data;//输出列表
7     }
8     xlsx.selectSheet(tr("Sheet3"));//设置Sheet3为当前列表
9     xlsx.save();//保存文件

4.获取行数和列数:

1     QXlsx::Document xlsx(excelName);
2     qDebug()<<xlsx.dimension().rowCount();//行数
3     qDebug()<<xlsx.dimension().columnCount();//列数

以上就是Qt 对Excel的基本操作。

还有一些功能这里就不列举了:

标签:QXlsx,Qt,文件,Excel,xlsx,Document
From: https://www.cnblogs.com/ybqjymy/p/17244590.html

相关文章

  • Qt QXlsx基本使用
     1、概述QXlsx是一个可以读写Excel文件的库。不依赖office以及wps组件,可以在Qt5支持的任何平台上使用;使用方式:1.QXlsx可以编译为静态库库使用(可以提升项目编译速度......
  • Java 使用 POI 导出Excel,设置同一个单元格的内容显示不同的文字颜色
    要在Java中导出Excel并设置同一单元格的内容显示不同的文字颜色,可以使用ApachePOI库来实现。下面是一个示例代码,演示如何在单元格中设置不同颜色的文本:1//创建......
  • QT Creator 安装教程
    Qt介绍:  Qt是一个跨平台的C++开发库。主要用来绘制漂亮的界面,其他还包含很多其它功能,如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等。Qt......
  • Qt Creator
    Qt的学习资料参照这篇良心文档,感谢奇先生的工作:https://qtguide.ustclug.org/在QtCreator诞生之前,Qt程序可以通过qmake命令行编译或者像上一节手动输入g++命令编......
  • 【Visual Leak Detector】在 QT 中使用 VLD(方式三)
    说明使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。目录说明1.使用前的准备2.在QT中使用VLD2.1复制lib库及头文件2.2在项目.pro文件中指明路径2.3配......
  • Qt实现多图片合成PDF文件
    需求:纯Qt,把多张图片合成到一个PDF文件中  //合成PDF//include<QPdfWriter>QStringpdfFileName="D:\\a.pdf";QStringListimageFileNameList={"C:\\Users......
  • Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
    场景上面讲了node-red中获取mqtt数据的调试过程。如果要模拟通过温度传感器的mqtt订阅的主题中获取温度数据并在能显示仪表盘的界面中实时检测刷新数据。node-red支持自定义......
  • C++查询ip归属地(QT)
    以查询ip归属地的例子来学习C++的API接口调用。常见的API接口可能会给出post及get两种访问方法,我们先学习较为简单的get方法。首先是找到相关的接口,如https://ip.userage......
  • 物联网 | HASS+MQTT+树莓派室内监测小型物联网系统
    实践说明本次实践将在阿里云服务器上部署HomeAssistant服务和MQTT服务,并在树莓派4B上通过GPIO口连接温湿度、火焰和烟雾传感器。最终编写Python程序将树莓派通过MQTT连接到......
  • 【Visual Leak Detector】在 QT 中使用 VLD(方式二)
    说明使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。目录说明1.使用前的准备2.在QT中使用VLD2.1在项目.pro文件中指明路径2.2在main.cpp文件中添加头文......