当前位置: 代码迷 >> QT开发 >> ,用Qt的数据的方式打开Excel失败
  详细解决方案

,用Qt的数据的方式打开Excel失败

热度:218   发布时间:2016-04-25 03:05:40.0
求助,用Qt的数据的方式打开Excel失败
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("Driver={Microsoft Excel Driver (*.xls)};DBQ=E:\\test.xls");
    bool bOpen = db.open();

这个是成功的
但把后缀都改为xlsx就失败了
   QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName("Driver={Microsoft Excel Driver (*.xlsx)};DBQ=E:\\test.xlsx");
    bool bOpen = db.open(); 打开失败

------解决思路----------------------
qt 只支持xml为基础的xslx的Excel文件,也就是保存时要选择"Strick Open XML (*.xlsx)"。
使用方法:
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" + QString("c:\\file.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;
    }
}

具体可参考:http://qt-project.org/wiki/Handling_Microsoft_Excel_file_format

给分吧!我只有10分了, 贴子都不能发!谢谢了!

------解决思路----------------------
高版本的驱动串是不一样的: DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}
  相关解决方案