Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Range Excel Sql



  • Seguendo l'esempio di un tutorial per l'interrogazione di un file xls, mi sono trovato a scrivere questa linea di codice

     if(db.open())
        {
            QSqlQuery *query = new QSqlQuery(db);
            query->exec("select * from [" + QString("Foglio1")+"$A1:B5]");
    
        while (query->next()) {
            QString column1 =query->value(0).toString();
            qDebug() << column1;
    
        }
        db.close();
        QSqlDatabase::removeDatabase("xls_connection");
    }
    

    Ma con mia sorpresa i valori che sono stati estrapolati erano esattamente di A2 A3 A4 A5.
    Visto che avevo riempito solo le prime cinque caselle delle prime due colonne cosa non ha funzionato e come devo correggere ?



  • Allora ho fatto alcune prove . Ho aumentato il Range e ho notato che i record considerati iniziano dal secondo record della colonna, come se il primo fosse considerato l'intestazione (sarĂ  da fare accertamenti).
    E che attraverso la funzione value lui considera le varie colonne del range; ovviamente inizia il conteggio da 0 come prima considerata.
    Al momento lo considererei risolto ma parte quindi il dubbio relativo all'intestazione della colonna.



  • Ciao, sperando che il file excel sia fatto bene costruisci una query normale, togliendo l'asterisco e mettendoci il nome delle colonne che ti servono. Il nome delle colonne va messo nel primo record.


Log in to reply