[QT_051]Qt5 编译QtXlsx并添加为模块[Windows]

00.QtXlsx是什么?能干什么?

QtXlsx是一个可以读写Excel文件的库。它不需要Microsoft Excel,可以在Qt5支持的任何平台上使用。

可以创建、读取、编辑.xlsx文件。

01.如何编译?

1.1编译环境:

Windows10平台;

Qt 5.12.0 MSVC 2017_64 编译器;

1.2编译准备:

1.2.1首先准备下载Perl5地址,否则直接编译QtXlsx会报错提示没有Perl5环境;如果已安装,则忽略。

下载Perl5地址:Perl Download - www.perl.orghttps://www.perl.org/get.html
 (多平台:MAC/LINUX/WINDOWS)

Windows平台下载直达地址:https://strawberryperl.com/
 (根据自己系统位数进行选择,这里以选择64位平台的为例:)

1.2.2 下载Perl5完成后,进行安装即可。主要是要有这个环境。

1.2.3 下载QtXlsx源码,下载地址:

https://github.com/dbzhang800/QtXlsxWriter

1.3编译过程:

1.3.1首先下载的源码必须放到没有中文的路径下,Qt项目路径中不能有中文。

1.3.2使用Qt 打开QtXlsx项目,直接点击左下方小锤子构建即可。

​ 

1.3.3在项目构建完以后,找到构建目录,然后按照02大步骤,添加为Qt模块。

编译后的构建目录如下:

​ 

02.添加为Qt模块

2.1新建一个名为QtXlsx的空文件夹,将刚才下载下来的QtXlsx工程下/src/xlsx下的所有文件复制一份放到刚才新建的空文件夹中,其实里面就是一些头文件。然后,将文件夹QtXlsx拷贝到你的Qt目前所使用的编译器目录的include文件夹下,如下图所示:

2.2接下来拷贝你的构建目录下的lib文件夹下的t5Xlsxd.lib、Qt5Xlsx.lib、Qt5Xlsx.prl、Qt5Xlsxd.prl4个文件到你的Qt目前所使用的编译器目录的lib文件夹下,如下图所示:

2.3再将你的构建目录下的lib文件夹下的Qt5Xlsx.dll、Qt5Xlsxd.dll两个库文件拷贝到你的Qt目前所使用的编译器目录的bin文件夹下,如下图所示:

2.4最后,将你的构建目录下的mkspecs/modules-inst文件夹下的 qt_lib_xlsx.pri 和qt_lib_xlsx_private.pri这两个文件拷贝到你的Qt目前所使用的编译器目录的mkspecs/modules文件夹下,如下图所示:

 至此,模块添加完成,接下来就是使用了。

03.如何使用?

1.首先在确保02大步骤都完成的情况下,在你的项目.pro文件中,添加模块:

QT += xlsx

2.引入头文件(根据需求,引入自己所需的头文件)

#include <QtXlsx/xlsxdocument.h>

3.举一个使用的例子,导出tablewidget中的表的数据:

//导出表记录
void Income::exportTableRecords()
{
    QString filePath = QFileDialog::getSaveFileName(this, "Save File", "", "Excel Files (*.xlsx)");

    if (!filePath.isEmpty()) {
        QXlsx::Document xlsx(filePath);

        // 获取 TableWidget 中的列数和行数
        int rowCount = ui->tableWidget_records->rowCount();
        int columnCount = ui->tableWidget_records->columnCount();

        // 写入表头
        for (int column = 0; column < columnCount; ++column)
        {
            QTableWidgetItem* item = ui->tableWidget_records->horizontalHeaderItem(column);
            if (item != nullptr)
            {
                //write原型:
                //bool write(int row, int col, const QVariant &value, const Format &format = Format());
                xlsx.write(1, column + 1, item->text());//从1开始,不是从0开始
            }
        }

        // 写入数据行
        for (int row = 0; row < rowCount; ++row)
        {
            for (int column = 0; column < columnCount; ++column)
            {
                QTableWidgetItem* item = ui->tableWidget_records->item(row, column);
                if (item != nullptr)
                {
                    xlsx.write(row + 2, column + 1, item->text());
                } else
                {
                    xlsx.write(row + 2, column + 1, "");
                }
            }
        }

        xlsx.save();//关闭保存
    }
}

04.打包注意事项

在软件进行打包的时候,注意将:Qt5Xlsx.dll 这个动态库放到与exe同级目录下,否则软件会提示找不到Qt5Xlsx.dll从而不能运行。

05.总结

整体来说编译过程很简单,就是需要在编译之前先下载安装Perl5环境,而后根据自己目前所使用的的编译器进行编译,然后添加为模块。最后在打包的时候千万注意要将对应的动态库文件加入进去,否则会提示错误!

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值