Qt读写Excel--QXlsx编译为静态库2

1、概述🥔

在使用QXlsx时由于源码文件比较多,如果直接加载进项目里面,会增加每次编译的时间;

直接将源码加载进项目工程中,会导致项目文件非常多,结构变得更加臃肿;

所以在本文中将会将QXlsx编译为静态库再使用;

注意: 如果是刚接触QXlsx建议还是直接使用源码,因为QXlsx源码中的注释信息主要是在.cpp文件中,使用源码便于通过阅读源码和注释信息学习怎么使用QXlsx。

2、准备工作🥕

本文中使用到的QXlsx版本为:1.4.3

本文中使用到的Qt编译器版本为:msvc2017-64

下载源码

下载

或者使用Git命令下载git clone git@github.com:QtExcel/QXlsx.git

3、开始编译🌽

打开QXlsx工程:进入QXlsx文件夹,双击打开QXlsx.pro工程文件

cpp 复制代码
contains(QT_ARCH, i386){        # 使用32位编译器
DESTDIR = $$PWD/bin             # 程序输出路径
}else{
message("64bit")                # 使用64位编译器
DESTDIR = $$PWD/bin64
}
win32:CONFIG(release, debug|release): TARGET = QXlsx        # 生成release版本静态库名称
else:win32:CONFIG(debug, debug|release): TARGET = QXlsxd    # 生成debug版本静态库名称

分别选择Debug、Release,然后点击左下角的锤子

编译完成后,在QXlsx文件夹下就会出现一个bin64文件夹,打开文件夹就可以看见有QXlsx.libQXlsxd.lib两个文件

新建一个QXlsx文件夹,将header 文件夹和bin64 文件夹拷贝到新建的QXlsx 文件夹中,然后将header 重命名为include,到这里编译的QXlsx就准备完成了。

4、加载QXlsx静态库🥒

  • 新建一个Qt工程,将准备好的QXlsx文件夹拷贝到工程目录下

QtCreator中鼠标在工程上右键选择添加库

选择外部库

点击浏览,找到工程路径下的QXlsx.lib库,选择Window为debug版本添加'd'作为后缀

点击下一步后就会在Pro文件中生成下列内容

然后改为下列内容,到这一步就加载完成了。

5、测试QXlsx静态库🥬

  • 在工程中添加下列代码,然后分别以debug、release模式编译,如果在生成的可执行程序路径下看见Test.xlsx 文件了,那就说明QXlsx静态库 编译成功了✌

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

#include "xlsxdocument.h"           // 添加QXlsx头文件

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QXlsx::Document xlsx;           // 创建一个excel
    xlsx.write("A1", "Hello Qt!");  // 在第一行第一列写入数据
    xlsx.saveAs("Test.xlsx");       // excel保存到./Test.xlsx
}

Widget::~Widget()
{
    delete ui;
}
相关推荐
前端老石人10 分钟前
HTML 字符引用完全指南
开发语言·前端·html
matlab_xiaowang25 分钟前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
虹科网络安全38 分钟前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje1 小时前
Java语法进阶
java·开发语言·jvm
老前端的功夫1 小时前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_435287921 小时前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
止语Lab1 小时前
从手动到框架:Go DI 演进的三个拐点
开发语言·后端·golang
yaoxin5211232 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
小短腿的代码世界2 小时前
Qt日志系统深度解析:从qDebug到企业级日志框架
开发语言·qt
REDcker3 小时前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js