一般QT读写excel都是通过QT自带的axcontainer组件,需要office安装环境,而且效率也比较低。
开源的Qt Xlsx可以脱离office直接读写excel(貌似只支持xlsx),对于应用程序的分发还是比较有利的。
源码地址:https://github.com/dbzhang800/QtXlsxWriter
一、编译
1、编译前需事先安装perl;
2、下载源码,打开工程,仅构建src。编译出错时,在出错的文件中添加:#include <QVector>,并把出错的地方的"QList" 用"QVector" 替换掉重新构建即可。
3、拷贝编译生成的文件到QT系统目录:
1)源码src\xlsx\目录下的h文件拷贝到Qt对应版本的include目录(因为编译产生的很多h文件内容是里是相对链接,直接拷贝源码下的h文件不会出错)
2)lib目录下的.a、.lib、.prl6个文件拷贝到Qt对应版本的的lib目录;
3)bin目录下的.dll2个文件拷贝到Qt对应版本的bin目录;
4)mkspecs\modules-inst目录下的qt_lib_xlsx.pri拷贝到Qt对应版本的的lib目录的mkspecs\modules目录。
二、使用
项目文件中QT += xlsx,cpp文件中#include <QtXlsx>
库文档:http://qtxlsx.debao.me/qtxlsx-module.html(貌似要翻墙)
三、补充修正
实际使用发现,这个库在读取excel单元格数据(QVariant Worksheet::read(int row, int column) const)时,在单元格是公式的情况下,返回的是公式而不是值,翻了下源码,在xlsxworksheet.cpp这个文件里,把520-534的 if (cell->hasFormula()) {}这段直接注释掉,这样就直接是return cell->value();
编译好可直接下载使用的包(QT5.10.minGW32。已修改为公式返回值)
介绍QtXlsx库,用于Qt应用中无需Office环境直接读写xlsx格式的Excel文件,提供编译及使用指南,包括源码编译步骤、文件配置与库文档资源。
1万+

被折叠的 条评论
为什么被折叠?



