Qt+VS使用QtXlsx详细步骤,以及遇到的问题
Qt+VS使用QtXlsx详细步骤,以及遇到的问题
前言
最近项目中有一个需求,需要添加一个查看历史记录的功能,将数据库中保存的数据下载下来。考虑到数据格式,Excel表格形式最为合适。因此,本文将详细介绍如何在Qt和VS中配置和使用QtXlsx。
目录
- 下载QtXlsx
- 将QtXlsx嵌入到代码中使用
- 将QtXlsx编译成库使用
3.1 编译库需要电脑有perl环境
3.2 编译QtXlsx
3.3 配置QtXlsx
3.4 使用QtXlsx库
3.4.1 Qt使用方法
3.4.2 VS中使用QtXlsx - 遇到的疑问
1. 下载QtXlsx
可以通过以下方式下载QtXlsx:
- 下载链接:https://github.com/dbzhang800/QtXlsxWriter
- 下载zip压缩包
- 或者使用git命令:
git clone https://github.com/dbzhang800/QtXlsxWriter.git
下载成功后,可以看到如下目录结构:
在Qt中使用QtXlsx有两种方式:一种是将其作为源码直接使用,另一种是将其编译为库使用。
2. 将QtXlsx嵌入到代码中使用
将QtXlsx的源码直接嵌入到项目中使用,具体步骤如下:
- 复制src目录到自己的项目文件夹中。
- 在.pro文件中加入以下代码:
include(src/xlsx/qtxlsx.pri)
保存后,源码就会被加载进来。接下来验证是否可以使用:
- 添加头文件
- 在源码中添加以下代码:
QXlsx::Document xlsx; xlsx.saveAs("Test.xlsx");
运行后,可以在构建目录中看到生成的表格文件。
3. 将QtXlsx编译成库使用
3.1 编译库需要电脑有perl环境
需要安装Perl环境,下载链接如下,下载默认安装即可。
Strawberry Perl for Windows
3.2 编译QtXlsx
双击打开.pro文件,选择合适的编译器,点击构建。
在构建目录就会看到编译成功。由于Qt支持QtXlsx库,可以将其作为模块添加xlsx到.pro文件中。接下来给Qt配置QtXlsx。
3.3 配置QtXlsx
配置QtXlsx需要将相关文件复制到编译器的相应目录下:
- 将编译生成的include文件夹中的QtXlsx复制到你所要使用的编译器include目录中(例如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中。
- 将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)。
- 将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)。
- 将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下。
至此,QtXlsx的配置已完成。
3.4 使用QtXlsx库
3.4.1 Qt使用方法
配置完成后,直接在Qt的.pro文件中添加xlsx模块即可使用:
编译运行后,可以在构建目录下看到生成的Excel表格。
3.4.2 VS中使用QtXlsx
在VS中使用QtXlsx需要进行以下配置:
- 在项目属性中,将配置好的include文件夹和lib库目录添加到VC++目录中。
- 在链接器输入中输入要使用的库,注意debug和release版本的库不同。
- 添加头文件后即可正常使用,验证方式与Qt中相同。
4. 遇到的疑问
4.1 在配置QtXlsx的时候,除了复制编译生成的include文件夹之外,还需要复制源码中的include文件夹,没有这一步QtXlsx没办法正常使用。
通常情况下,只复制编译生成的 include 文件夹就足够了,因为这些文件夹包含了 QtXlsx 库的头文件,使得您可以在项目中直接引用这些头文件,从而使用 QtXlsx 提供的功能。
然而,有时候需要额外复制源码中的 include 文件夹是因为以下情况:
依赖项的头文件:QtXlsx 自身可能依赖于其他库或模块,而这些依赖项的头文件可能包含在 QtXlsx 源码的 include 文件夹中。如果这些依赖项的头文件在编译时需要被引用,而编译生成的 include 文件夹中并未包含这些依赖项的头文件,那么您可能需要手动将这些头文件从源码中的 include 文件夹复制到编译生成的 include 文件夹中。
编译环境配置不完整:有时,编译生成的 include 文件夹可能不包含所有必需的头文件,这可能是由于编译环境配置不完整或不正确导致的。在这种情况下,复制源码中的 include 文件夹可以作为一种补救措施,以确保编译过程中能够找到所有必需的头文件。
总的来说,通常情况下只需复制编译生成的 include 文件夹就足够了,但在某些情况下,为了解决依赖项或编译环境配置不完整的问题,可能需要额外复制源码中的 include 文件夹。这样做可以确保编译过程顺利进行,并且最终能够在项目中正常使用 QtXlsx 提供的功能。