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

Qt connect to XLSX file with ODBC driver

本文关键字:XLSX 文件 连接 驱动程序 使用 ODBC Qt      更新时间:2023-10-16

我有那个代码,我从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:无法连接

需要指定完整路径并将全名设置为ODBC:

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

和往常一样,堆叠毫无用处。这里的人只能回答一些愚蠢的问题,每一个真正的问题都会留在这里没有答案。

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

您需要为xlsx安装obdc-excel驱动程序,并将其添加到连接字符串中,而不是xls

您可以将excel文件保存为xls文件,并使用该文件(2003-2007 excel)