Qt导出EXCEL的三种办法:第三种方法:libxl

libxl是一个商业的库

1)libxl 的官方网站(https://www.libxl.com/)下载库的最新版本。请注意,libxl 是一个商业库,但提供了试用版和付费版,试用版限制导入行数为300行,导出不受限制,但是会在导出文件第一行插入试用版信息 如下:
在这里插入图片描述

#include <QCoreApplication>
#include "libxl.h"

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    libxl::Book* book = xlCreateBook();
    if (book) {
        libxl::Sheet* sheet = book->addSheet(L"Sheet1");
        QString data = "myhome";
        sheet->writeStr(1, 1, L"Hello");
        sheet->writeStr(1, 2, L"World");
        sheet->writeStr(1, 3,  data.toString().toStdWString().c_str());
        book->save(L"example_libxl.xlsx");
        book->release();
    }
    return a.exec();
}

优点

1)libxl 提供了丰富的功能,包括创建、读取和修改Excel文件,支持多种格式、公式、样式等。

2)性能良好: libxl 的设计旨在提供高性能,尤其是对于大型Excel文件的处理。

3)跨平台: libxl 支持跨平台,因此可以在多种操作系统上使用。

4)速度快,内存占用小,目前测试了三种导出方式libxl,QXlsx,QAxObject中,libxl速度最快。

缺点

1)商业许可费用:这个作为缺点不合适,毕竟是商业库。

2)目前使用中存在".xksx"的兼容问题,WPS有时候会打不开,".xls"没有问题。

3)导出的文件较大,相比较QXlsx的导出文件会大很多。

如果项目进行商业实施,且数据量很大的时候,建议使用libxl。QXlsx速度适中,内存开销很大。QAxObject整体速度太慢建议小数量时候用。

数据比较

mysql:row = 45000,col = 45
libxl 导出内存占用:120MB,QXlsx占用1.1G
libxl导出文件的大小:25.6MB,QXlsx导出文件大小:6.64MB

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大头鼹鼠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值