QString fileName = QFileDialog::getSaveFileName(this, tr("Excel file"), qApp->applicationDirPath(),tr("Excel Files (*.xls)"));
if (fileName.isEmpty())
return;
if (excel(fileName))//调用导出Excel方法
{
QMessageBox::about(this, QStringLiteral("提示"), QStringLiteral("Excel文件 导出完成") );
QSqlDatabase::removeDatabase("excelexport");
}
bool RecordDlg::excel(QString fileName )
{
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC", "excelexport");
if(!db.isValid())
{
return false;
}
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())
{
QMessageBox::about(this, QStringLiteral("提示"), QStringLiteral("Excel文件 导出失败") );
QSqlDatabase::removeDatabase("excelexport");
return false;
}
QSqlQuery query(db);
QString strSql=QObject::tr("drop table [%1]").arg(QStringLiteral("人脸识别记录"));
query.exec(strSql);
strSql = QObject::tr("CREATE TABLE [%1]([%2] char(100),[%3] char(100),[%4] char(100),[%5] char(100),[%6] char(100),[%7] char(100),[%8] char(100),[%9] char(100))")
.arg(QStringLiteral("人脸识别记录"))
.arg(QStringLiteral("序号"))
.arg(QStringLiteral("时间"))
.arg(QStringLiteral("位置"))
.arg(QStringLiteral("工号"))
.arg(QStringLiteral("姓名"))
.arg(QStringLiteral("部门编号"))
.arg(QStringLiteral("状态"))
.arg(QStringLiteral("图片"));
qDebug()<<strSql;
query.prepare(strSql);
if(!query.exec())
{
QMessageBox::about(this, QStringLiteral("提示"), QStringLiteral("Excel文件 导出失败") );
db.close();
QSqlDatabase::removeDatabase("excelexport");
return false;
}
for each(RecordItem var in vecRecord)
{
QString index = QString::number(var.index);
QString dTime;
GetRecordTime(var.dTime,&dTime);
QString szCamPos=var.szCamPos;
QString szJobNum=var.szJobNum;
QString szName =var.szName;
QString szDept=var.szDept;
QString status;
switch(var.status) {
case AlarmType::NORMAL:
status=QStringLiteral("正常");
break;
case AlarmType::HANDLED:
status=QStringLiteral("已处理");
break;
case AlarmType::ABNORMAL:
status=QStringLiteral("异常");
break;
default:
status=QStringLiteral("未知");
break;
}
QString szImgName=var.szImgName;
//query.prepare(strSql);
strSql=QObject::tr("insert into %1 values(‘%2‘,‘%3‘,‘%4‘,‘%5‘,‘%6‘,‘%7‘,‘%8‘,‘%9‘)")
.arg(QStringLiteral("人脸识别记录"))
.arg(index)
.arg(dTime)
.arg(szCamPos)
.arg(szJobNum)
.arg(szName)
.arg(szDept)
.arg(status)
.arg(szImgName);
qDebug()<<strSql;
if(!query.exec(strSql))
{
qDebug()<<query.lastError();
qDebug()<<query.lastQuery();
QMessageBox::about(this, QStringLiteral("提示"), QStringLiteral("Excel文件 导出失败") );
db.close();
QSqlDatabase::removeDatabase("excelexport");
return false;
}
}
return true;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。