背景

最近项目中涉及到excel的读写,因为是在Linux上操作,而且是Qt4的版本,所以相对有些麻烦。之前我们用的是直接通过python去读写excel,把数据存储到中间文件。然后读中间文件进行操作,这次操作比较麻烦。就考虑其他办法。(开发环境:Centos 7.4,  GCC:4.8.5 )

Linux读写操作excel的库

linux下读写excel文件的库了解到的分为以下几种:

1. xlsLib 和 libxls(跨平台的C++读写excel)

xlsLib是用来写excel, xlsLib是用来读excel的,但是他们只能操作xls格式excel,不支持xlsx格式。

下载

libxls: GitHub - libxls/libxls: Read binary Excel files from C/C++

xlslib: https://github.com/JanX2/xlslib

编译:libxls 会发现没有configure的脚本, 直接执行 ./bootststrap,生成了configure,

然后./confgure , make, make install 三步直接完成

如果想编译到指定目录./configure --prefix=/home/.....(your dir)  , make, make install (your dir)

有权限就直接放到usr/lib /usr/include, 没有就直接在项目中引用了

CMakeList : target_link_libraries

QMake: LIBS += -L(lib path) -l(xlslib) 

这里执行./configure的时候会发现报错,什么版本号不正确,语法错误,修改对应的脚本即可。

2.libxl

Libxl也是一个跨平台的excel的操作库,他相对较为强大,可同时读写xls, xlsx格式的excel,缺点是收费,大概一千多吧永久使用,不过有试用版的动态库给你用,读excel没啥问题,写excel的时候会在生成的excel上提示用了他们的库没交钱。有钱的大佬可试试:

下载: LibXL download

里面的example也比较全面,有c / c++ / Qt等。还是收费的比较舒服。

3.Qtxlsx

Qtxlsx就是专门为Qt操作excel的库了,基础Qt5开发出来的,同时读写excel,不过只能支持xlsx格式的文档。

下载:GitHub - dbzhang800/QtXlsxWriter: .xlsx file reader and writer for Qt5

编译:直接用Qtcreator打开编译即可。

因为我这里是Qt4,所以把这个库也改成支持Qt4了。

主要改了zlib的文件,以及项目里面用到了Qt5才有的QStringLatin,以及生成excel时候,的zlib的压缩的函数,seed的参数去掉,这些都不影响正常的使用,就是在性能上可能没原来的效率那么高了。

总结:

   最后我还是选择了qtxlsx,因为他主要就是为Qt开发的,而我这边也是Qt环境,其次,他也同时具备excel的读写的功能,相对于上面xlslib/libxls要引用两个库比较方便,代码开源,遇到问题也比较容易处理。

https://download.csdn.net/download/Mario_z/85466604

Logo

更多推荐