資源簡介
ts翻譯文件導出為excel。qt5.5編譯。包含代碼及可執行程序。
代碼片段和文件信息
#include?“exportexcelobject.h“
#include?
#include?
#include?
int?ExportExcelobject::export2Excel()
{
????if(fieldList.size()?<=?0)
????{
????????qDebug()?<“ExportExcelobject::export2Excel?failed:?No?fields?defined.“;
????????return?-1;
????}
????QSqlDatabase?db?=?QSqlDatabase::addDatabase(“QODBC“?“excelexport“);
????if(!db.isValid())
????{
????????qDebug()?<“ExportExcelobject::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(excelFilePath).arg(excelFilePath);
????db.setDatabaseName(dsn);
????if(!db.open())
????{
????????qDebug()?<“ExportExcelobject::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?s?sSql?=?QString(“DROP?TABLE?[%1]?(“).arg(sheetName);
????query.exec(sSql);
????//create?the?table?(sheet?in?Excel?file)
????sSql?=?QString(“CREATE?TABLE?[%1]?(“).arg(sheetName);
????for?(int?i?=?0;?i?????{
????????s?=?QString(“[%1]?%2“).arg(fieldList.at(i)->sFieldName).arg(fieldList.at(i)->sFieldType);
????????sSql?+=?s;
????????if(i?????????????sSql?+=?“??“;
????}
????sSql?+=?“)“;
????query.prepare(sSql);
????if(!query.exec())
????{
????????qDebug()?<“ExportExcelobject::export2Excel?failed:?Create?Excel?sheet?failed.“;
????????//db.close();
????????//QSqlDatabase::removeDatabase(“excelexport“);
????????return?-4;
????}
????//add?all?rows
????sSql?=?QString(“INSERT?INTO?[%1]?(“).arg(sheetName);
????for?(int?i?=?0;?i?????{
????????sSql?+=?fieldList.at(i)->sFieldName;
????????if(i?????????????sSql?+=?“??“;
????}
????sSql?+=?“)?VALUES?(“;
????for?(int?i?=?0;?i?????{
????????sSql?+=?QString(“:data%1“).arg(i);
????????if(i?????????????sSql?+=?“??“;
????}
????sSql?+=?“)“;
????qDebug()?<
????int?r?iRet?=?0;
????for(r?=?0?;?r?model()->rowCount()?;?r++)
????{
????????query.prepare(sSql);
????????for?(int?c?=?0;?c?????????{
????????????query.bindValue(QString(“:data%1“).arg(c)?tableView->model()->data(tableView->model()->index(r?fieldList.at(c)->iCol)));
????????}
????????if(query.exec())
????????????iRet++;
????????if(r?%?10?==?0)
????????????emit?exportedRowCount(r);
????}
????emit?exportedRowCount(r);
????return?iRet;
}
- 上一篇:C-V2X技術(10份報告打包)
- 下一篇:iWall For Mac 破解版
評論
共有 條評論