Qt读写Excel文件,Qt xlsx

这篇博客介绍了在Qt环境中,使用QAxObject进行Excel操作的问题,即当机器未安装Office时无法正常工作。作者推荐了一个替代方案——Qtxlsx,这是一个跨平台且不依赖Office的库。Qtxlsx支持.xlsx格式,但不支持.xls。使用Qtxlsx可以快速读写Excel文件,操作简单。博客提供了Qtxlsx的编译步骤和基本使用方法,并提醒用户如果遇到‘not a zip file’错误,需要将文件另存为.xlsx格式。

Qt下读写Excel文件,网上推荐是适用QAxObject

QAxObject *excel = new QAxObject;
excel->setControl(“Excel.Application”); //连接Excel控件

但是这个用法有问题,当机器没有安装Office的时候,是不能调用成功的,即使安装了WPS和VBA也一样不行。

现在越来越多的电脑都装WPS,不装Office了。

所以,能不依赖Office才是最好的。

找了一下,发现只有Qt xlsx这个东西比较多人用。也能跨平台使用,不过没试过。
我是在GitHub下了源代码压缩包,安装perl,编译成mingw32的库。编译过程很简单,执行3条命令,会自己编译好,然后拷贝到相应的目录。网上说的要修改代码,新版的已经不用修改,直接编译通过的。qt只编译了32位的,64位的不知道怎么弄。

总结:
1、比QAxObject快,导出秒操作,瞬间完成。
2、调用简单,不需要熟悉VBA使用函数和属性设置。

下面重点来了->
这货只支持.xlsx格式,也就是说旧版.xls格式文件它是不认的,直接报错:QZip: not a zip file! 读出来都是空值。

如果是发现报这样的错误,赶紧把文件另存为.xlsx格式即可。

这个是它的网站,上面有详细使用介绍,很强大的东西:
http://qtxlsx.debao.me/

使用方法:
#include <QtXlsx/QtXlsx>
QXlsx::Document xlsx(filePath);//打开需要打开的excel文件,filePath为打开的文件名
xlsx.read (1,1)//读取文件相应的行列(注意xlsx读取的文件的起始行列从1开始)
xlsx.write(2, 3, “hello,qtxlsx”);//向相应的xlsx文件中写数据,2是行,3是列,从1,1开始的
xlsx.saveAs();//写完之后一定要保存

编译后的文件结构:

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

XINGTECODE

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

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

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

打赏作者

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

抵扣说明:

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

余额充值