Qt中QAxObject读取Excel文件
来源:互联网 发布:厦门市网络预约 编辑:程序博客网 时间:2024/05/17 02:11
转载请注明t1234xy4原创:http://blog.csdn.net/t1234xy4/article/details/70326205
读取Excel文件时,可以用Qt自带的QAxObeject,本文对QAxObect的使用做了简单的介绍。
1、Qt封装了读取Excel的类。其头文件放在
#include <ActiveQt/QAxObject>
在创建时可以直接勾选。
2、另外需要在链接器中添加对应的dll文件
QAxContainerd.libQAxContainer.lib3、读取Excel文件的代码如下:
int ReadExcelApp::readExcel(QString filename){QAxObject *excel = NULL;QAxObject *workbooks = NULL;QAxObject *workbook = NULL;excel = new QAxObject("Excel.Application");if(!excel){QMessageBox::critical(this,"Error:","Excel Object Missing!");return -1;}excel->dynamicCall("SetVisible(bool)",false);workbooks = excel->querySubObject("WorkBooks");if(!workbooks){QMessageBox::critical(this,"Error:","Open WorkBooks error!");return -1;}workbook = workbooks->querySubObject("Open(QString,QVariant)",\QString(filename));if(!workbook){QMessageBox::critical(this,"Error:","Open CSV error!");return -1;}QAxObject* sheets = workbook->querySubObject("Sheets");if(!sheets){QMessageBox::critical(this,"Error:","Open sheets error!");return -1;}QAxObject* worksheet = sheets->querySubObject("Item(int)",1);if(!worksheet){QMessageBox::critical(this,"Error:","Open sheet error!");return -1;}QAxObject* usedrange = worksheet->querySubObject("UsedRange");if(!usedrange){QMessageBox::critical(this,"Error:","Get UsedRange error!");return -1;}QAxObject* rows = usedrange->querySubObject("Rows");if(!rows){QMessageBox::critical(this,"Error:","Get Rows error!");return -1;}QAxObject* colums = usedrange->querySubObject("Columns");if(!colums){QMessageBox::critical(this,"Error:","Get Columns error!");return -1;}int iRowStart = usedrange->property("Row").toInt();int iColStart = usedrange->property("Column").toInt();int iRows = rows->property("Count").toInt();int iCols = colums->property("Count").toInt();for(int r=iRowStart; r<iRowStart+iRows;r++){for(int c = iColStart; c<iColStart+iCols; c++){QAxObject* cell = worksheet->querySubObject("Cells(int,int)",r,c);//qDebug() <<"("<<r <<","<< c << "):" << cell->dynamicCall("Value2()").toString();}}delete excel;excel = NULL;return 0;}
本文使用以上代码读CSV文件,其中不存在单元格合并的情况,若存在合并单元格或许需要特别处理。
0 0
- Qt中QAxObject读取Excel文件
- Qt读取/写入Excel数据--QAxObject
- Qt QAxObject操作excel文件过程总结
- Qt中使用QAxObject操作Excel
- Qt QAxObject 操作Excel
- Qt用QAxObject读取excel编译出错问题解决
- Qt用QAxObject读取excel编译出错问题解决
- Qt使用QAxObject快速批量读取Excel内容
- 使用Qt的QAxObject将Excel文件转成CSV文本文件
- Qt中用QAxObject操作Excel
- 在Qt中用QAxObject来操作Excel
- 在Qt中用QAxObject来操作Excel
- 在Qt中用QAxObject来操作Excel
- 在Qt中用QAxObject来操作Excel
- QT QAxObject 复制Excel Sheet方法
- Qt读取excel文件
- 在VS2017环境下Qt读写Excel遇到"无法打开 源 文件 'QAxObject'"的错误解决办法
- QT 不找到不QAxObject 文件
- Git 的 .gitignore 配置
- HDU 5667 Sequence(矩阵快速幂)
- 玲珑杯----两只老虎
- 毕业设计过程记录五,单目摄像机标定
- Android 学习资料和工具整理
- Qt中QAxObject读取Excel文件
- Romantic(扩展欧几里得)
- 2017组队训练 ZOJ
- 静态包中info.plist打进去之后,上线打包ipa报错
- MySQL redo与undo
- C语言实现静态顺序表
- Linux入门(13)——Ubuntu16.04下将图片和pdf互转
- 展讯:3G之殇
- 知识经济时代,看各行业争相演绎价格到价值营销的转变!