这是我记录Qt学习过程的第8篇心得文章,上次写到Qt使用QAxObject将Excel表格数据导入到SQLite数据库,使用过程中发现,执行效率不高,于是就研究了QXlsx,发现利用QXlsx处理Excel真的太方便了,上一篇写了使用QXlsx将QTableView数据导出到Excel表格,肯定少不了数据导入的啊,上代码。
实现代码:
//读取EXcel数据导入到SQLite数据库,使用QXlsx
bool Skysonya::readExcelToSQLiteByQXlsx(const QString &fileName, QSqlDatabase sqliteDB, QString tableName,
QString strTitle)
{
QXlsx::Document xlsx(fileName);
if (!xlsx.load())
{
messageBox("critical", strTitle, "打开Excel文件失败!");
return false;
}
int rowCount = xlsx.dimension().rowCount();
int colCount = xlsx.dimension().columnCount();
QSqlQuery query(sqliteDB);
query.exec("select * from " + tableName);
QSqlRecord emptyRec = query.record(); //获取空记录,只有字段名
QStringList fieldList{};
for (int i = 1; i < emptyRec.count(); i++)
{
fieldList.append(emptyRec.fieldName(i));
}
QString sql = fieldList.join(",");
qDebug() <