Qt之如何读取Excel表格数据
Qt之如何读取Excel表格数据
- 概述:
- 代码示例:
- .pro:
- 需要包含的头文件:
- readExcelData.h:
- readExcelData.cpp:
- over:
概述:
大家好我是背锅侠“IT幻想家”, 今天唠叨一下Qt读取Excel需要注意的几个重要的点(个人理解):
1.Qt环境4.8.5或4.8.3下是有读取Excel的模块的,但是存在Bug的在你构建工程时会报找不到模块库
2.Excel环境,首先你的Excel一定是正版已经激活的软件,否则在你调用Excel的API函数时依旧会报错误
3.最重要的一点如果大家使用Debug进行调试一定要记得清理后台没有关闭的Excel.exe
4.此工程不支持跨平台使用,比如在麒麟下Linux下都会报找不到QAxObject这个类的,因为这个类是WinDows下的
代码示例:
.pro:
QT += axcontainer //5.4.1
CONFIG += qaxcontainer //因版本问题写的方式不同
需要包含的头文件:
#include <QVariant> //读取出的数据只能用此类型容器进行存储
#include <ActiveQt/QAxObject> //Excel
readExcelData.h:
/*** @brief readExcelData 读取Excel数据* @return saveCloseQuit();*/bool readExcelData();
private:QAxObject* excel; //操作Excel文件对象(open-save-close-quit)QAxObject* workbooks; //总工作薄对象QAxObject* workbook; //操作当前工作薄对象QAxObject* worksheets; //文件中所有<Sheet>表页QAxObject* worksheet; //存储第n个sheet对象QAxObject* usedrange; //存储当前sheet的数据对象
readExcelData.cpp:
ExcelRead::ExcelRead()
{excel = NULL; //在构造函数中进行初始化操作workbooks = NULL;workbook = NULL;worksheets = NULL;worksheet = NULL;usedrange = NULL;}bool ExcelRead::readExcelData()
{excel = new QAxObject("Excel.Application"); //创建Excel对象连接驱动excel->dynamicCall("SetVisible(bool)",true); //ture的打开Excel表 false不打开Excel表excel->setProperty("DisplayAlerts",false);workbooks = excel->querySubObject("WorkBooks");workbook = workbooks->querySubObject("Open(const QString&)",fileName); //打开指定Excelworksheets = workbook->querySubObject("WorkSheets"); //获取表页对象worksheet = worksheets->querySubObject("Item(int)",1); //获取第1个sheet表usedrange =worksheet->querySubObject("Usedrange"); //获取权限int iRow = usedrange->property("Row").toInt(); //数据起始行数和列数(可以解决不规则Excel)int iCol = usedrange->property("Column").toInt();int intRow = usedrange->querySubObject("Rows")->property("Count").toInt(); //获取数据总行数// 逐行读取主表for (int i = iRow; i <= intRow; i++){QString number = worksheet->querySubObject("Cells(int,int)",i,1)->dynamicCall(("Value2()")).value<QString>();QString name = worksheet->querySubObject("Cells(int,int)",i,2)->dynamicCall(("Value2()")).value<QString>();QString id = worksheet->querySubObject("Cells(int,int)",i,3)->dynamicCall(("Value2()")).value<QString>();QString desc = worksheet->querySubObject("Cells(int,int)",i,4)->dynamicCall(("Value2()")).value<QString>();qDebug() << number << name << id << desc;//打印验证数据}return saveCloseQuit();
}
over:
欢迎大家关注作者在文末评论、点赞、转发以及批评指正!
如果大家有更好的方法或有问题可以在文末评论一起讨论!
共同学习!
共同进步!
向内认知,向外行走!
Qt之如何读取Excel表格数据相关推荐
- linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据
Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...
- python读取excel表格数据
python操作excel主要用到xlrd和xlwt两个库,xlrd读取表格数据,支持xlsx和xls格式的excel表格:xlwt写入excel表格数据 一.python读取excel表格数据 1. ...
- python 如何读取excel表格数据
文章目录 前言 python 读取excel 表格 前言 如何用python读取excel表格数据呢 ? python 读取excel 表格 首先需要配置好环境,需要下载 xlrd 包: # 如果不指 ...
- 读取EXCEL表格数据到MATLAB成为矩阵
读取EXCEL表格数据到MATLAB成为矩阵 data=xlsread('filename','sheet','range') 其中,'filename'为文件路径及文件名,'sheet'为数据表名称 ...
- Matlab中读取excel表格数据
一:Matlab中读取excel表格数据步骤讲解: 第二步: 第三步: 第四步: 第五步: 第六步 第七步: 输入之后按回车键,就会出现相应的波形: 效果图:
- 使用最新的poi-4.1.0.jar导入导出Excel表格——读取Excel表格数据用法
使用最新的poi-4.1.0.jar导入导出Excel表格--读取Excel表格数据用法 其中主要的一点心得就是在switch语句哪里进行读取数据转换时,我看到网上的一些用法都是使用 HSSFCell ...
- pandas使用read_excel函数读取excel表格数据为dataframe、设置sheet_name参数为表单索引位置列表则读取多个表单的数据并返回dataframe字典
pandas使用read_excel函数读取excel表格数据为dataframe.使用sheet_name参数指定读取excel表格中指定的sheet表单.设置sheet_name参数为表单索引位置 ...
- 拒绝“累丑”,告别加班,一键读取Excel表格数据自动录入至网页
朗思RPA:读取Excel表格数据自动录入到网页 朗思无代码RPA社区版可永久免费下载体验~ 零代码,易学易操作,可视化界面,全中文化支持,助力企业数字化转型,让员工工作更高效!
- Qt 读取Excel表格数据 生成Excel表格并写入数据
qtxlsx读取Excel,无需本地存在excel或者wps驱动,读写操作更方便简洁. 一. 读取Excel表格 修改.pro文件,增加 axcontainer QT += axcontainer 导 ...
最新文章
- 自学python还是报班-Python应该自学还是报班好?
- Silverlight教程第四部分:使用 Style 元素更好地封装观感 (木野狐译)
- Navicat使用教程:在Navicat Monitor for MySQL/MariaDB中配置实例
- 优先队列如何按照pair 的第二关键字排序(对比vector按照pair第二关键字排序)
- TypeScript 里的 unknown 和 never
- 易语言微凉模块oracle,跟着微凉学易语言 【简单子类化】
- 调用未知DLL中的导出函数
- Windows Phone 7 LongListSelector控件实现分类列表和字母索引
- postgresql表中间加列_PostgreSQL ALTER TABLE命令
- 数据结构-栈(先进后出表)
- PyTorch 激励函数
- 【Windows】打印机0x0000011b解决办法
- python动作捕捉_打破价格垄断,工程师自制动作捕捉系统-嵌入式系统-与非网
- AR/VR应用前景探讨
- Android 开发技术周报
- 深度参与 openGauss Developer Day 2022,云和恩墨在多项活动中展风采
- RIP协议;OSPF协议;BGP协议
- 周易六十四卦——离卦
- element的el-input-number的默认值的问题
- 又一波网红餐饮店惨死,餐饮+新零售或将产生新格局