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