写在前面
本文将详细介绍如何在项目中使用编译好的QtXlsx的动态库,而无需将QtXlsx安装到Qt模块。
为什么使用动态库而不是将QtXlsx安装到Qt模块中?
在同步开发环境中,若使用模块安装方式,则所有同步开发者的环境中都需要安装QtXlsx模块,重复的安装时间开销较大。
而使用动态库的方式则只需在同步开发环境中编译生成一次,所有同步开发人员复用一份动态库即可,大大减少了时间开销。
本文使用环境:
Win11 64位
Qt5.15.2 + MSVC2019_x64
编译QtXlsx动态库
① github项目主页克隆到本地:https://github.com/dbzhang800/QtXlsxWriter
②使用QtCreator打开qtxlsx.pro, 注意使用后面应用项目相同的配置。我这里是Qt5.15.2 + MSVC2019_x64:
③使用release配置编译生成dll:
示例
首先将上面编译好的QtXlsx相关的.h头文件、.lib引入库文件、.dll动态库文件拷贝到项目路径下。
①将相关.h头文件、.lib引入库文件、.dll动态库文件拷贝到项目路径下:
头文件拷贝&替换:
ps: 上面截图多选择了一个qtxlsxversion.h,该文件是输出的头文件,src/xlsx下没有,因此无需替换,总计16个需要替换的头文件。
ps2: xxx_p.h无需替换,_p表示private,表示私密的头文件(涉及pimpl封装技术),本来就不是对外公开的,因此无需替换。
引入库文件拷贝:
动态库文件拷贝到应用项目的输出目录:
②在应用项目中配置链接拷贝进来的QtXlsx库
③包含头文件即可使用:
#include "MyQtXlsxTest.h"
#include "QtXlsx/xlsxdocument.h"
MyQtXlsxTest::MyQtXlsxTest(QWidget* parent)
: QWidget(parent)
{
ui.setupUi(this);
QXlsx::Document xlsx;
xlsx.write("A1", "Hello world!");
xlsx.saveAs("Test.xlsx");
}
MyQtXlsxTest::~MyQtXlsxTest()
{
}
运行后可在应用项目目录看到生成的Test.xlsx文件及内容:
关于更多QtXlsx的用法可参考官方说明文档:https://qtxlsx.debao.me/
总结
本文使用编译动态库的方式使用QtXlsx,而无需安装QtXlsx模块,方便快捷,将精力专注于使用而不是安装上面。