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

Qt connect to XLSX file with ODBC driver

我有从 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] Data source name not found and no driver specified, the default QODBC3: Unable to connect

需要像在 ODBC 中一样指定完整路径和设置全名:

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

一如既往,堆栈毫无用处。小伙伴们只能回答菜鸟问题,真正的问题留在这里没有答案。

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

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

您可以将 excel 文件另存为 xls 文件并使用它 (2003-2007 excel)