QT_XLSX库的导入和使用

scan1 2024-06-27 11:35:17 阅读 60

QT_XLSX库的导入和使用

主要介绍QtXlsx的使用及安装,为后续的测试项目做个铺垫,项目内容就是一个工装测试界面,其中扫码获取电路板的id号之后把烧录结果和测试结果采用excel作为数据库存储。

一、QtXls库安装

1 .1 下载QtXlsx源码

QtXlsx官网可以查看关于这个库的介绍,大家直接去github下载使用即可,点击蓝字进入下载链接

—> Github下载链接:

https://github.com/dbzhang800/QtXlsxWriter

image

此外,后续的构建操作还需要电脑有perl环境,官网下载链接比较慢,需要的可以直接点击下面链接下载或者去官网下载。

快速下载(CSDN下载):

https://download.csdn.net/download/Kevin_8_Lee/22780854

官网链接: https://strawberryperl.com/

image

安装按照默认即可

用Qt打开pro文件并构建(左下角的小锤子或者直接右键构建,只构建,不要运行)

image

image

将include文件夹中的 QtXlsx文件夹整个复制到 Qt安装目录中的incude文件夹,我的是在下面的路径:

D:\Qt\5.11.1\mingw81_64\include  

image

将lib文件夹中的prl文件和.a后缀的库文件复制到

D:\Qt\5.11.1\mingw81_64\lib    

image

image

将lib文件夹中的dll文件复制到

D:\Qt\5.11.1\mingw81_64\bin    

image

将mkspecs文件夹中modules子文件夹pri文件复制到

D:\Qt\5.11.1\mingw81_64\mkspecs\modules  

image

经过以上流程就操作结束了,在代码中可以愉快地使用xlsx模块了。如果编译过程出现什么问题可以在编译代码前运行qmake再运行代码,若碰到其它问题欢迎评论区讨论。

二、QtXls库使用方法

2 .1 实例操作介绍

QtXlsx库在Qt中用来操作Excel文件,可以跨平台使用,也就是说你在Linux下没有Microsoft Excel也可以使用这个库。QtXlsx的读写Excel文件速度也非常快。

使用Qtxlsx库,在Qt5.11.1中操作excel文件(读/写)。操作说明如下:

2 .2 新建一个Qt工程

随便取名字,带ui界面的比较好操作

image

2 .3 设计ui界面(Qt Creator)

QtCreator设计界面及对应空间命名如下图所示:

image

image

在类后写上字母注释这样方便引用

2 .4 代码设计

首先在pro文件中添加xlsx模块,才可以使用这个库的函数对excel文件进行读写操作。

image

在excel.h总添加头函数:

#include <QtXlsx>

#include <QMessageBox>

#include <QDebug>

image

在两个按钮的槽函数中输入功能代码:

void excel::on_pushButton_W_clicked()

{

int Cell_num_h,Cell_num_v;

QString Cell_val_w;

QXlsx::Document test_Xlsx("./Test/Test.xlsx");

Cell_num_h = ui->lineEdit_W_h->text().toInt();

Cell_num_v = ui->lineEdit_W_v->text().toInt();

Cell_val_w = ui->lineEdit_W->text();

QString folderPath =log_path;

QDir folder(folderPath);

if (!folder.exists())

{

if (folder.mkpath(".")) {

qDebug() << "没有文件夹";

qDebug() << "Folder created successfully.";

test_Xlsx.write(Cell_num_h, Cell_num_v,Cell_val_w);

QMessageBox::information(NULL, "提示", "Write Success!");

// 将设置的内容写入对应单元格内并保存文件为 Test.xlsx

test_Xlsx.saveAs("./Test/Test.xlsx");

} else {

qDebug() << "Failed to create folder.";

}

}

else

{

qDebug() << "已经有文件夹了";

// 获取文本框内设置的单元格及要写入的值

test_Xlsx.write(Cell_num_h, Cell_num_v,Cell_val_w);

QMessageBox::information(NULL, "提示", "Write Success!");

test_Xlsx.save();

}

}

void excel::on_pushButton_R_clicked()

{

QXlsx::Document test_Xlsx("./Test/Test.xlsx"); // Test.xlsx跟工程在同一文件夹中,因此这里用相对路径

QString Cell_val_r;

int Cell_num_h, Cell_num_v;

Cell_num_h = ui->lineEdit_R_H->text().toInt(); // 获取字符写入了哪一个单元格

Cell_num_v = ui->lineEdit_R_V->text().toInt();

// 读取对应单元格内容并在textBrowser显示出来

Cell_val_r = test_Xlsx.read(Cell_num_h,Cell_num_v).toString();

ui->textEdit_R->setText(Cell_val_r);

}

image

image

程序界面:

image

使用:

image

在第一行第2列写入内容

image

可以在输出地方查到第一行第二列已经写入的内容

在bulid-debug下的tests文件夹中可以看到新建的一个excel表格,里面的内容就是ui界面操作写入的内容。如下图所示。

image

image

三、小结

这样就搞好了,剩下的各种函数可以在库里面自己运行单独的项目去测试使用!

网址参考:

https://mp.weixin.qq.com/s__biz=MzU1NjEwMTY0Mw==&mid=2247527494&idx=2&sn=96a5ad53c1bcc01198e43790fae15c84&chksm=fbc81522ccbf9c349b8c8d61d54e4d6a46d85d514bbba87ebe337343b7ae4386d4eb61e36965&scene=27

https://blog.csdn.net/Kevin_8_Lee

https://www.guyuehome.com/author/61398ec3d1017



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。