再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