读取XLSX文件可以使用Qt的QXlsx库,它提供了一个简单的API来读取Excel文件。以下是一个读取XLSX文件并将数据导入SQLite数据库的示例:
#include <QCoreApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
#include "xlsxdocument.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建SQLite数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("test.db");
if (!db.open()) {
qDebug() << "Failed to open database";
return 1;
}
// 打开Excel文件
QXlsx::Document xlsx("data.xlsx");
// 获取第一个工作表
QXlsx::Worksheet *worksheet = xlsx.sheet(1);
// 遍历所有行
int row = 1; // 第一行为标题
while (true) {
// 获取当前行
QXlsx::CellRange range = worksheet->dimension();
if (row > range.rowCount()) {
break;
}
// 读取数据
QString name = worksheet->read(row, 1).toString();
int age = worksheet->read(row, 2).toInt();
// 插入到数据库
QSqlQuery query;
query.prepare("INSERT INTO person(name, age) VALUES(:name, :age)");
query.bindValue(":name", name);
query.bindValue(":age", age);
if (!query.exec()) {
qDebug() << "Failed to insert data";
return 1;
}
row++;
}
qDebug() << "Data imported successfully";
return 0;
}
在此示例中,我们首先创建一个SQLite数据库连接,并打开数据库。然后,我们使用QXlsx库打开Excel文件,并获取第一个工作表。接下来,我们遍历所有行并从Excel文件中读取数据。最后,我们将数据插入到SQLite数据库中。