QT阅读电子表格(Excel)文件

我需要使用Qt在Excel中读取电子表格以便在数据库中导入数据。

我可以读取数据使用:

qDebug() << "Open excel.." << endl; QSqlDatabase excel = QSqlDatabase::addDatabase("QODBC"); excel.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" + file); if(excel.open()) { int cont = 0; QSqlQuery query("select * from [Sheet1" + "$]"); while(query.next()) { QString column1= query.value(0).toString(); QString column2= query.value(1).toString(); QString column3= query.value(2).toString(); QString column4= query.value(3).toString(); QString column5= query.value(4).toString(); qDebug("('', %d, %d, %d, \"%s\"),", column2.toInt(), column3.toInt(), column4.toInt(), column5.toStdString().c_str()); cont++; } QString reg = "Regs: " + cont; qDebug() << reg; } else { qDebug() << "Can't open file (Excel)" << endl; } 

这种方法的工作原理,但我必须知道excel文件中的工作表名称。 我需要dynamic读取文件。

我一直在阅读有关QAxObject类,但我找不到一个工作的例子。

 QAxWidget excel("Excel.Application"); excel.setProperty("Visible", true); QAxObject * workbooks = excel.querySubObject("WorkBooks"); workbooks->dynamicCall("Open (const QString&)", file); 

这里得到错误:

 invalid use of incomplete type 'class QAxObject' workbooks->dynamicCall("Open (const QString&)", QString("C:/test7.xls")); ^ 

有人知道或有一个function的例子?? 我会很感激。

Gretings。