我有那个代码,我从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:无法连接
答案 0 :(得分:3)
需要指定完整路径并设置全名,如ODBC中所示:
DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};
一如既往,堆栈毫无用处。这里的家伙只能回答noob问题,每个真正的问题都会留在这里而不回答。
答案 1 :(得分:1)
您必须编译并将数据库驱动程序dll放在.exe文件附近名为“sqldrivers”的子文件夹中。在你的情况下,这应该是qsqlodbc * .dll。 Asterisk是Qt的主要版本号。