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
此外,后续的构建操作还需要电脑有perl环境,官网下载链接比较慢,需要的可以直接点击下面链接下载或者去官网下载。
快速下载(CSDN下载):
https://download.csdn.net/download/Kevin_8_Lee/22780854
官网链接: https://strawberryperl.com/
安装按照默认即可
用Qt打开pro文件并构建(左下角的小锤子或者直接右键构建,只构建,不要运行)
将include文件夹中的 QtXlsx文件夹整个复制到 Qt安装目录中的incude文件夹,我的是在下面的路径:
D:\Qt\5.11.1\mingw81_64\include
将lib文件夹中的prl文件和.a后缀的库文件复制到
D:\Qt\5.11.1\mingw81_64\lib
将lib文件夹中的dll文件复制到
D:\Qt\5.11.1\mingw81_64\bin
将mkspecs文件夹中modules子文件夹pri文件复制到
D:\Qt\5.11.1\mingw81_64\mkspecs\modules
经过以上流程就操作结束了,在代码中可以愉快地使用xlsx模块了。如果编译过程出现什么问题可以在编译代码前运行qmake再运行代码,若碰到其它问题欢迎评论区讨论。
二、QtXls库使用方法
2 .1 实例操作介绍
QtXlsx库在Qt中用来操作Excel文件,可以跨平台使用,也就是说你在Linux下没有Microsoft Excel也可以使用这个库。QtXlsx的读写Excel文件速度也非常快。
使用Qtxlsx库,在Qt5.11.1中操作excel文件(读/写)。操作说明如下:
2 .2 新建一个Qt工程
随便取名字,带ui界面的比较好操作
2 .3 设计ui界面(Qt Creator)
QtCreator设计界面及对应空间命名如下图所示:
在类后写上字母注释这样方便引用
2 .4 代码设计
首先在pro文件中添加xlsx模块,才可以使用这个库的函数对excel文件进行读写操作。
在excel.h总添加头函数:
#include <QtXlsx>
#include <QMessageBox>
#include <QDebug>
在两个按钮的槽函数中输入功能代码:
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);
}
程序界面:
使用:
在第一行第2列写入内容
可以在输出地方查到第一行第二列已经写入的内容
在bulid-debug下的tests文件夹中可以看到新建的一个excel表格,里面的内容就是ui界面操作写入的内容。如下图所示。
三、小结
这样就搞好了,剩下的各种函数可以在库里面自己运行单独的项目去测试使用!
网址参考:
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
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。