Qt读取Excel之QAxObject
2023-09-14 09:07:00 时间
QAxObject *excel = NULL;
QAxObject *workbooks = NULL;
QAxObject *workbook = NULL;
excel = new QAxObject(this);
excel->setControl("Excel.Application");
if (!excel) {
QMessageBox::critical(NULL, "错误信息", "EXCEL对象丢失");
return;
}
excel->dynamicCall("SetVisible(bool)", false);
workbooks = excel->querySubObject("WorkBooks");
workbook = workbooks->querySubObject("Open(const QString&)",path);
QAxObject * worksheet = workbook->querySubObject("WorkSheets(int)", 1); // 获取第一个工作sheet
QAxObject * usedrange = worksheet->querySubObject("UsedRange");//获取该sheet的使用范围对象
QAxObject * rows = usedrange->querySubObject("Rows");
QAxObject * columns = usedrange->querySubObject("Columns");
/*获取行数和列数*/
int intCols = columns->property("Count").toInt();
int intRows = rows->property("Count").toInt();
int intRowStart = usedrange->property("Row").toInt();
int intColStart = usedrange->property("Column").toInt();
ui.tableWidget->setRowCount(intRows);
/*获取excel内容*/
for (int i = intRowStart; i < intRowStart + intRows; i++) //行
{
for (int j = intColStart; j < intColStart + intCols; j++)
{
QAxObject *cell = worksheet->querySubObject("Cells(int,int)", i, j);
QString value = cell->dynamicCall("Value2()").toString();
setItemValue(i-1, j-1, value);
delete cell;
}
}
// 关闭excel
workbook->dynamicCall("Close(Boolean)",true);
excel->dynamicCall("Quit(void)");
delete excel;
excel = NULL;
相关文章
- QT的基本知识「建议收藏」
- Qt QTreeWidget 详解
- 分享一个Qt安卓的docker配置
- Qt使用QPixmap小坑
- 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 创建 Qt 桌面程序 | 构建并运行 Qt 桌面程序 )
- java处理Excel文件—excel文件的创建,删除,写入,读取详解编程语言
- 报表 MySQL导出Excel数据报表的指南(mysql导出excel)
- Linux下Qt安装指南:快速部署Qt运行环境(linux下qt安装教程)
- 使用Qt快速设置Linux时间(qt设置linux时间)
- Qt的下载和安装(超详细)
- Qt 5.7 在 Linux 上的发布(qt5.7linux)
- 快速完成:从Excel导入Oracle数据库(excel导入oracle数据库)
- 在Linux中安装Qt第三方库的指南(linux安装qt库)
- 导入Excel数据到Oracle数据库(将excel导入oracle数据库)
- 开发Linux下 Qt开发:从入门到精通.(linux下的qt)
- 解决Qt连接MySQL乱码问题(qtmysql乱码)
- 在Linux上开发应用程序:Qt系列版本深入解析(linux版本qt)
- 探索Linux世界:体验Qt桌面之美(linux桌面qt)
- Linux系统中实现Qt串口通信的完美指南(qt串口通信linux)
- 深入浅出:使用Qt连接MSSQL(qt 连接mssql)
- Qt如何编译Oracle数据库驱动(qt编译oracle驱动)
- 使用Linux和Qt搭建强大的应用环境(linux qt 环境)
- MySQL和QT不配套使用,无法实现事务处理(mysql不支持qt事务)