QXlsx(访问Excel)

文章介绍了在Qt中使用QXlsx库代替QAxObject来更方便地读写Excel文件,详细阐述了QXlsx的配置过程,包括直接安装和添加源代码两种方法,并提供了QXlsx的基本用法,如创建对象、写入和读取数据、操作工作表等。
摘要由CSDN通过智能技术生成

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

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

QXlsx的配置链接(亲测有用):

Qt之QXlsx的使用——完整篇_51CTO博客_qt qxlsx

配置的方式有两种:

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

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

pro文件中添加:

QT +=xlsx

添加头文件:

 #include <QtXlsx/QtXlsx>

创建一个项目:

1.pro文件添加:

2. 添加头文件:

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

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

4.打开该文件:

第二种方式:

直接在项目中添加源代码(只需要下载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.在构造函数中添加以下代码:

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

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

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

Qt xlsx的具体用法:

Qt xlsx的文档:Qt XLSX |QtXlsx 0.3 (debao.me)

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

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

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

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

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

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

Document(文档类)

用来处理Excel文件中的内容

常用的函数:

QXlsx::Document  xlsx创建一个对象
QXlsx::Document  xlsx(QString)创建并打开指定路径的Excel
Cell::Document::cellAt(int row,int col)返回指定单元格,如果指定位置没有单元格,则该函数返回 0。
addSheet(name,type)添加一个新表name,格式为type
copySheet(name1,name2)创建name2,复制name1
currentSheet()返回当前的工作表对像
deleteSheet(name)删除name这张表
insertChart()插入图表
insertImage()插入图像
insertSheet(index,name,type)index处插入name表,名程已使用的话返回false
mergeCells()合并单元格
moveSheet()移动工作表
renameSheet(old,new)更换名称

read(x,y)使用坐标

read(A1)使用Excel表的位置

读取表中的数据 

注意:Excel的坐标是从1开始

write(x,y,Data)使用坐标

write(A1,Data)使用Excel表的位置

写入数据到指定位置
save()将当前文档保存到文件系统。如果在构建文档时未指定名称,则将使用默认名称“book1.xlsx”。如果保存成功,则返回 true。
saveAs(path)保存到指定位置
selectSheet(name)指定当前的表为name
setColumnWidth()设置列的宽度
setRowWidget()设置行高
sheetNames()返回全部工作表的名称列表
wookbook()返回工作簿
dimension()        返回包含单元格数据的区域


1.创建一个Qt xlsx对象:

//方法1

QXlsx::Document xlsx;

//方法2

如果要省略QXlsx::

using QXlsx::Document;

Document xlsx;

2.写入和读取Excel数据

 
    QXlsx::Document xlsx("Test.xlsx");//打开该Excel文件
    //写入数据
    for(int i=1;i<10;i++)
    {
        for(int j=1;j<10;j++)
        {
            xlsx.write(i,j,i*j*10);
        }
    }
    //读取数据
    for(int n=1;n<10;n++)
    {
        for(int m=1;m<10;m++)
        {
            qDebug()<<xlsx.read(n,m);

        }
    }
    xlsx.save();//保存文件

 输出的数据:

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

 3.输出工作列表:

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

 

4.获取行数和列数:

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

 

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

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

点击该链接即可查看Qt Xlsx C++ Classes | QtXlsx 0.3 (debao.me) 

其他的操作可以点击下方链接学习:Qt Xlsx使用教程、Qt操作Excel、Qt生成Excel图表、跨平台不依赖Office_超级大洋葱806的博客-CSDN博客_qtxlsx

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值