#include <QtSql/QSqlDatabase>#include <QtSql/QSqlQuery>#include <QFileDialog>#include <QtDebug>
//调用方法,如下: QString fileName = QFileDialog::getSaveFileName(this, tr("Excel file"), qApp->applicationDirPath (), tr("Excel Files (*.xls)")); if (fileName.isEmpty()) return; QMessageBox::about(this, tr("您将要建立的Excel文件"), fileName ); if (excel(fileName)>0 )//调用导出Excel方法 { QMessageBox::about(this, tr("Excel文件 导出完成"), fileName ); QSqlDatabase::removeDatabase("excelexport"); }
//对于excel的到处操作如下:int ww::excel(QString fileName){ QString sheetName; sheetName="mydatas"; qDebug() <<"fileName"<<fileName; QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "excelexport"); if(!db.isValid()) { qDebug() << "export2Excel failed: QODBC not supported."; return -2; } // set the dsn string QString dsn = QString("DRIVER={Microsoft Excel Driver (*.xls)};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=/"%1/";DBQ=%2").arg(fileName).arg(fileName); db.setDatabaseName(dsn); if(!db.open()) { qDebug() << "export2Excel failed: Create Excel file failed by DRIVER={Microsoft Excel Driver (*.xls)}."; QSqlDatabase::removeDatabase("excelexport"); return -3; } QSqlQuery query(db); //drop the table if it's already exists QString sSql = QString("DROP TABLE [%1] ").arg(sheetName); query.exec(sSql);
//create the table (sheet in Excel file) sSql = QString("CREATE TABLE [%1] (").arg(sheetName); sSql+="[网名] char(20) , [网站网址] char(20) ,[QQ号] char(20) "; sSql += ")"; qDebug()<<"sSql"<<sSql; query.prepare(sSql); if(! query.exec()) { qDebug() << "export2Excel failed: Create Excel sheet failed."; db.close(); QSqlDatabase::removeDatabase("excelexport"); return -4; } sSql =QString("INSERT INTO [%1] (").arg(sheetName); query.prepare( sSql+" 网名, 网站网址, QQ号) " "VALUES (:name, :web, :qq)"); query.bindValue(":name", "eeerrrrr"); query.bindValue(":web", "http://www.satsuns.com"); query.bindValue(":qq", 603031225); query.exec(); return 1;}