QT使用QAxObject读取Excel教程-全网最全_qt读取excel,揭秘今年Golang春招面试必问问题有哪些
#include <QtWidgets/QApplication>
#include <QAxObject>
#include <QVariant>
// 使用QAxObject读取Excel文件
QList<QVariant> readExcel(const QString &filePath) {
QAxObject *excel = new QAxObject(nullptr);
excel->setControl("Excel.Application");
excel->dynamicCall("SetVisible (bool Visible)","false"); // 不显示Excel界面
excel->setProperty("DisplayAlerts", false); // 不显示任何对话框
QAxObject *workbooks = excel->querySubObject("WorkBooks");
workbooks->dynamicCall("Open (const QString&)", QString(filePath));
QAxObject *workbook = excel->querySubObject("ActiveWorkBook");
QAxObject *worksheet = workbook->querySubObject("WorkSheets(int)", 1);
QAxObject *range = worksheet->querySubObject("UsedRange");
QVariant data = range->dynamicCall("Value").toVariant();
// 清理资源
workbook->dynamicCall("Close (Boolean)", false);
excel->dynamicCall("Quit (void)");
workbooks->dynamicCall("Release (void)");
excel->dynamicCall("Release (void)");
delete excel;
return data.toList();
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QString filePath = "C:/path/to/your/excel.xlsx";
QList<QVariant> data = readExcel(filePath);
// 处理读取到的数据
for (const QVariant &row : data.toList()) {
for (const QVariant &cell : row.toList()) {
qDebug() << cell.toString();
}
}
return app.exec();
}
这段代码展示了如何使用Qt的QAxObject类来读取Excel文件。首先创建一个Excel应用程序的实例,然后打开指定的工作簿,获取活动工作表和使用范围,接着读取这个范围内的数据,并在清理资源后返回数据列表。在main函数中,我们调用readExcel函数并处理返回的数据。注意,这种方法需要在你的系统上安装有Microsoft Excel,并且在Qt配置时启用了ActiveX模块。
评论已关闭