Qt实现Excel表格的读写操作(office,WPS)

您所在的位置:网站首页 wpsoffice数据库 Qt实现Excel表格的读写操作(office,WPS)

Qt实现Excel表格的读写操作(office,WPS)

2024-07-03 21:56| 来源: 网络整理| 查看: 265

我们用QT经常会将表格的数据导入数据库或者将数据库中的数据导出为*.xls/*.xlsx。使用比较多的就是用QAxObject对象进行操作。一般首先会连接数据库:

QAxObject *excel = new QAxObject(this); //连接Excel控件 excel->setControl("Excel.Application");

但是很多人的电脑上并没有安装office,这样会导致运行失败,如果安装了WPS,我们可以

QAxObject *excel = new QAxObject(this); //连接Excel控件 excel->setControl("ket.Application");

这说明office和WPS是兼容的,我们只需要修改这一行代码就可以了。

另外,附上详细的代码说明:

void Window::importExcelToDatabase() { QString strFilePathName = QFileDialog::getOpenFileName(this,QStringLiteral("选择Excel文件"),"",tr("Exel file(*.xls *.xlsx)")); if(strFilePathName.isNull()) { return ; } QAxObject *excel = new QAxObject(this); //连接Excel控件 if (excel->setControl("Excel.Application")) { } else { excel->setControl("ket.Application"); //连接Excel控件 } excel->setProperty("Visible", false); //不显示窗体 QAxObject* workbooks = excel->querySubObject("WorkBooks"); //获取工作簿集合 workbooks->dynamicCall("Open(const QString&)", strFilePathName); //打开打开已存在的工作簿 QAxObject* workbook = excel->querySubObject("ActiveWorkBook"); //获取当前工作簿 QAxObject* sheets = workbook->querySubObject("Sheets"); //获取工作表集合,Sheets也可换用WorkSheets QAxObject* sheet = workbook->querySubObject("WorkSheets(int)", 1);//获取工作表集合的工作表1,即sheet1 QAxObject* range = sheet->querySubObject("UsedRange"); //获取该sheet的使用范围对象 QVariant var = range->dynamicCall("Value"); delete range; QVariantList varRows = var.toList(); //得到表格中的所有数据 if(varRows.isEmpty()) { return; } const int rowCount = varRows.size(); QStringList m_userid,m_card_id,m_action; for(int i = 1; i < rowCount; ++i) // { QVariantList rowData = varRows[i].toList(); m_userid


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3