QT将Excel表导入到access数据库

需求,将excel表格信息导入到Access数据库
QString m_file =QFileDialog::getOpenFileName(this, "打开", QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation), "表格文件( *.xls)");if(UIDemo01::getFromExcel(m_file)){QMessageBox::information(this,tr("提示"),tr("导入成功"));}else{QMessageBox::information(this,tr("提示"),tr("导入失败"));}

getFromExcel为静态函数:bool static getFromExcel(QString m_path);

实现Excel数据的读入功能,读入到QList data;

实现:

bool  UIDemo01::getFromExcel(QString m_path)
{QSqlDatabase dbexcel = QSqlDatabase::addDatabase("QODBC", "excelexport");if(!dbexcel.isValid()){qDebug()<<"打开Excel失败";return false;}QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%1\";DBQ=%2").arg(m_path).arg(m_path);dbexcel.setDatabaseName(dsn);if(!dbexcel.open()){qDebug()<<"打开Excel失败";return false;}QSqlQuery query(dbexcel);query.exec("select * from [Sheet1$]");QStringList list;//一条记录QList data;//所有记录while(query.next()){list.clear();           QString stu_id = query.value(0).toString();           QString stu_name = query.value(1).toString();           list<

save实现数据的导入:

bool UIDemo01::save(QList data)
{QSqlQuery query;QString create_time=QDate::currentDate().toString("yyyy/MM/dd");foreach (QStringList slist, data){QString sSql = QString("INSERT INTO [db_student_info](stu_no,stu_name,create_time,state) VALUES(");for(int i=0,n=slist.size();i

注:导入具体字段有所修改


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章