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();//写完之后一定要保存
编译后的文件结构: