使用C++ Qt creater将数据从Excel文件添加到SQLite DB [已关闭]

bqf10yzr  于 2023-04-21  发布在  SQLite
关注(0)|答案(1)|浏览(245)

已关闭,此问题需要更focused,目前不接受回答。
**要改进此问题吗?**更新问题,使其仅关注editing this post的一个问题。

4年前关闭。
Improve this question
如何从.xlsx文件导入数据,并将其插入到sqlite数据库中的表中,使用C++创建的Qt。

t5zmwmid

t5zmwmid1#

QSqlDatabase db_SQLite = 
  QSqlDatabase::addDatabase("QSQLITE","sqlite_connection");
  db.setDatabaseName("Db"); 
  QSqlDatabase db_XL = QSqlDatabase::addDatabase("QODBC", "xlsx_connection");
    db_XL.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + QString("D:/Sample_Data.xlsx"));
    if(db_XL.open())
    {

     QSqlQuery *query = new QSqlQuery(db_XL);
     query->exec("select * from [" + QString("Sheet1") + "$]");
     while (query->next())
     {

         QSqlDatabase db_SQLite = QSqlDatabase::database("sqlite_connection");
          if(db_SQLite.open())
          {

              QSqlQuery * querytoDb = new QSqlQuery(db_SQLite);
              querytoDb->exec("CREATE TABLE TableName ("
                                "DataOne INTEGER,"
                                "Data2 TEXT,"
                                "Data3 REAL);")

              querytoDb->prepare("INSERT INTO TableName(DataOne, Data2, Data3,) values(:one, :two, :three)");
              querytoDb->bindValue(":one",query->value(0).toInt());
              querytoDb->bindValue(":two",query->value(0).toDateTime());
              querytoDb->bindValue(":three",query->value(0).toDouble());

              qDebug()<<querytoDb->exec()<<endl;
          }
     }
    db_XL.close();
    QSqlDatabase::removeDatabase("xlsx_connection");
    }

相关问题