Qt4 Linux下读写excel
背景最近项目中涉及到excel的读写,因为是在Linux上操作,而且是Qt4的版本,所以相对有些麻烦。之前我们用的是直接通过python去读写excel,把数据存储到中间文件。然后读中间文件进行操作,这次操作比较麻烦。就考虑其他办法。(开发环境:Centos 7.4, GCC:4.8.5 )Linux读写操作excel的库linux下读写excel文件的库了解到的分为以下几种:1. xlsLib
背景
最近项目中涉及到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要引用两个库比较方便,代码开源,遇到问题也比较容易处理。
更多推荐
所有评论(0)