Qt QSqlDatabase

时间:2014-10-28 13:20:23

标签: excel qt odbc

在搜索了一整天之后,我找不到我的问题的答案。我的问题是: 为什么ODBC驱动程序返回第二个值,而不是第一个,代码取自 https://wiki.qt.io/Handling_Microsoft_Excel_file_format

在第一步的LOOP中我看到两个值,但是在excel中我有1.为什么?

任何帮助表示赞赏

代码是:

srcdb.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + QString(getSettings("folderpath") + '/' + file));
        if(srcdb.open()) {
            QSqlQuery query("SELECT * FROM [" + QString("Sheet1") + "$A1:A3]"); // Select range, place A1:B5 after $
            while (query.next()) {
                QString column = query.value(0).toString();
                qDebug() << column;
            }
        }

1 个答案:

答案 0 :(得分:0)

在wiki中找到了这个:

  

默认情况下,OBDC使用第一行作为列的名称,您可以   改变连接中的'FirstRowHasNames'选项   设置。请记住,您正在使用数据库和每个数据库   column有自己的数据类型。所以如果你的第二行包含文本和   你的第三行包含数字,sql将选择其中一种数据类型。   如果几行包含文本,其余行包含浮动   数字,sql将使文本出现并将使数字   消失。

这就是为什么“2”显示为第一个。