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