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

本文介绍了如何将QXlsx库编译为静态库,并在Qt工程中加载和使用。首先,下载QXlsx 1.4.3版本和Qt msvc2017-64编译器,接着修改QXlsx.pro文件以生成静态库,编译完成后将库文件和头文件组织好。然后,在Qt工程中添加静态库并配置,最后通过编写简单的代码测试QXlsx库是否正常工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

更多精彩内容
👉个人内容分类汇总 👈
👉Qt读写Excel–QXlsx基本使用1👈
👉Qt读写Excel–QXlsx编译为静态库2👈
👉Qt读写Excel–QXlsx通过Document对象操作工作表3👈

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工程文件

在这里插入图片描述

在这里插入图片描述

  • 在Pro文件中删除TARGET = QXlsx,然后加入下列代码,这些代码是将编译后的静态库全部放到一个文件夹下,不用我们自己去拷,同时在编译debug版本静态库时在名称后面加一个d用于区分,防止debug静态库覆盖了release静态库。

    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静态库 编译成功了✌

    #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;
    }
    

    在这里插入图片描述

👉🖐✋🤏✌🤞🤘🤙👈

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mahuifa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值