Qt读写Excel文件,Qt 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();//写完之后一定要保存

编译后的文件结构:

Qt读写Excel文件,Qt xlsx