Qt4 Linux下读写excel

15 篇文章 4 订阅

背景

最近项目中涉及到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

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
Qt是一款跨平台的图形用户界面开发框架,可以在Windows、Linux和MacOS等多种操作系统中运行。在使用Qt进行Linux开发时,如果需要读取Excel文件中的数据,可以使用一些开源的来实现。 最常用的是libxls,它支持读取Microsoft Excel文件的内容,并提供了一个简单的API来实现这个过程。使用该需要在Linux系统中安装libxls-dev包,并在Qt项目的.pro文件中加入libxls的链接Qt开发人员在使用libxls时,需要先创建一个xlsWorkBook对象,然后通过xls_open()函数来打开Excel文件。在使用xls_read()函数读取Excel文件中的数据时,需要指定数据所在的工作表、行数和列数。读取每个单元格数据后,可以通过XLS_WORD(xls_cell*)和XLS_RK(xls_cell*)等函数来获取具体的数值。最后,需要通过xls_close()函数来关闭Excel文件。 除了libxls外,另外一个流行的是QXlsx,它是一个纯Qt实现的Excel读写,可以在Windows、Linux和MacOS中使用。使用QXlsx时,需要在Qt项目中加入QXlsx.pri文件,并在代码中创建QXlsx::Document对象来读取Excel文件中的数据。读取数据时,可以通过sheet()、cellAt()和read()等函数来指定具体的工作表、单元格和数据格式。 综上所述,Qt可以通过使用开源来实现Linux读取Excel,并提供了一些简单的API来操作Excel文件中的数据。此外,Qt还可通过QXlsx等纯Qt实现的读写Excel文件,方便快捷。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值