前言:最近项目中有一个需求,添加一个查看历史记录功能,需要将数据库中保存的数据,下载下来,那该以哪种格式呢?肯定是excel表格形式最好,所以本文记录一下,qt+vs如何配置以及如何使用QtXlsx。
目录
1.下载QtXlsx
下载链接如下
https://github.com/dbzhang800/QtXlsxWriter
下载zip压缩包。
或者使用git命令
git clone https://github.com/dbzhang800/QtXlsxWriter.git
下载成功后如下图所示
在qt中使用QtXlsx,有两种方式,一种是将其作为源码直接使用,一种是将其编译为库使用。
2.将QtXlsx嵌入到代码中使用
复制src。到自己的项目文件夹中。
源码:
项目目录:
在.pro中加入此代码
include(src/xlsx/qtxlsx.pri)
保存就可以看到源码已经被加载进来
验证是否可以使用?
添加头文件
在源码中,添加此代码
QXlsx::Document xlsx;
xlsx.saveAs("Test.xlsx");
运行,就可以在构建目录中看到此表格被成功创建。
3.将QtXlsx编译成库使用
3.1编译库需要电脑有perl环境
下载链接如下,下载默认安装即可。
3.2 编译QtXlsx
双击打开该pro文件
选择合适的编译器,点击构建。
在构建目录就会看到编译成功。
由于qt是支持QtXlsx库的,可以将其作为模块添加xlsx到pro文件中。所以接下来给qt配置qtxlsx。
3.3配置QtXlsx
配置QtXlsx,需要复制include,lib,bin,以及modules,到编译器的相应目录下。
3.3.1将编译生成的include文件夹中的QtXlsx复制到你所要使用的编译器include中
include文件夹下的Qtxlsx
复制到编译器include目录中,我要使用的是MSVC2017_64路径为D:\app\QT\5.14.2\msvc2017_64\include
将D:\VSProject\test\QtXlsxWriter\src\xlsx的所有头文件.h复制到D:\app\QT\5.14.2\msvc2017_64\include\QtXlsx中。
3.3.2将D:\VSProject\test\build-qtxlsx-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\lib中的.lib和.prl复制到编译器lib下D:\app\QT\5.14.2\msvc2017_64\lib
3.3.3将D:\VSProject\test\build-qtxlsx-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\bin目录下的dll复制到编译器bin下D:\app\QT\5.14.2\msvc2017_64\bin
3.3.4将D:\VSProject\test\build-qtxlsx-Desktop_Qt_5_14_2_MSVC2017_64bit-Debug\mkspecs\modules下的pri复制到编译器D:\app\QT\5.14.2\msvc2017_64\mkspecs\modules下
至此已配置完成。
3.4使用QtXlsx库
3.4.1qt使用方法
因为已经配置完成,直接在qt的.pro文件中添加xlsx,就可以直接使用
编译运行,构建目录下生成excel表格
3.4.2vs中使用QtXlsx
在项目右击属性,vc++目录中将配置好的include文件夹和lib库目录,添加上去
在链接器输入中输入要使用的库,debug和release版本不一样
添加头文件就能正常使用,验证方式和之前一样。
4.遇到的疑问
4.1在配置QtXlsx的时候,除了复制编译生成的include文件夹之外,还需要复制源码中的include文件夹,没有这一步QtXlsx没办法正常使用。
通常情况下,只复制编译生成的 include 文件夹就足够了,因为这些文件夹包含了 QtXlsx 库的头文件,使得您可以在项目中直接引用这些头文件,从而使用 QtXlsx 提供的功能。
然而,有时候需要额外复制源码中的 include 文件夹是因为以下情况:
-
依赖项的头文件:QtXlsx 自身可能依赖于其他库或模块,而这些依赖项的头文件可能包含在 QtXlsx 源码的 include 文件夹中。如果这些依赖项的头文件在编译时需要被引用,而编译生成的 include 文件夹中并未包含这些依赖项的头文件,那么您可能需要手动将这些头文件从源码中的 include 文件夹复制到编译生成的 include 文件夹中。
-
编译环境配置不完整:有时,编译生成的 include 文件夹可能不包含所有必需的头文件,这可能是由于编译环境配置不完整或不正确导致的。在这种情况下,复制源码中的 include 文件夹可以作为一种补救措施,以确保编译过程中能够找到所有必需的头文件。
总的来说,通常情况下只需复制编译生成的 include 文件夹就足够了,但在某些情况下,为了解决依赖项或编译环境配置不完整的问题,可能需要额外复制源码中的 include 文件夹。这样做可以确保编译过程顺利进行,并且最终能够在项目中正常使用 QtXlsx 提供的功能。