Qt使用ODBC驱动程序连接到XLSX文件

时间:2015-02-17 19:06:11

标签: c++ sql qt odbc xlsx

我有那个代码,我从Qt wiki中获取:

QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" + QString("sht.xlsx"));
if(db.open())
{
    QSqlQuery query("select * from [" + QString("Sheet1") + "$]");
    // Select range, place A1:B5 after $
    while (query.next())
    {
        QString column1= query.value(0).toString();
        qDebug() << column1;
    }
}
else {
    qDebug() << db.lastError().text();
}

但它没有连接:(我无法理解为什么:

  

[Microsoft] [Driver Manager ODBC]未找到数据源名称且未指定驱动程序,默认为QODBC3:无法连接

2 个答案:

答案 0 :(得分:3)

需要指定完整路径并设置全名,如ODBC中所示:

DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};

一如既往,堆栈毫无用处。这里的家伙只能回答noob问题,每个真正的问题都会留在这里而不回答。

答案 1 :(得分:1)

您必须编译并将数据库驱动程序dll放在.exe文件附近名为“sqldrivers”的子文件夹中。在你的情况下,这应该是qsqlodbc * .dll。 Asterisk是Qt的主要版本号。