Задать вопрос
UndeadDragon
@UndeadDragon
Разработчик ПО на C++, Qt, Python и др.

Qt как подключиться к .xlsx через ODBC?

Привет, есть код (брал из 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][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию QODBC3: Unable to connect"

Я уже мозг себе сломал, почему. У кого-нибудь есть идеи?
  • Вопрос задан
  • 4738 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
@Sumor
Нужен полный путь к файлу xlsx. Имя драйвера должно полностью совпадать с именем в ODBC.
Также нужна рабочая папка. В общем, я так понимаю что-то типа
DefaultDir=c:\temp;DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};FIL=Excel 12.0;DriverID=1046;DBQ=c:\temp\dexcel003.xlsx;Readonly=False


или

DBQ=c:\temp\dexcel003.xlsx;DefaultDir=c:\temp;Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DriverId=1046;FIL=Excel 12.0;MaxBufferSize=2048;PageTimeout=5;ReadOnly=0;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Lol4t0
Драйвер-то у вас стоит?
hdi.simbahiveodbc.datasourceadmin1.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы