QAxObject *excel = NULL;
QAxObject *workbooks = NULL;
QAxObject *workbook = NULL;
excel = new QAxObject("Excel.Application");
if (!excel){
qDebug() << "EXCEL对象丢失!";
}
excel->dynamicCall("SetVisible(bool)", false);
workbooks = excel->querySubObject("WorkBooks");
workbook = workbooks->querySubObject("Open(QVariant, QVariant)", file);
QAxObject * worksheet = workbook->querySubObject("WorkSheets(float)", 21);//打开第一个sheet
QAxObject * usedrange = worksheet->querySubObject("UsedRange");//获取该sheet的使用范围对象
QAxObject * rows = usedrange->querySubObject("Rows");
QAxObject * columns = usedrange->querySubObject("Columns");
int intRows = rows->property("Count").toInt();
int intCols = columns->property("Count").toInt();
// 批量载入数据,这里默认读取B13:C最后
QString Range = "A2:LH" +QString::number(intRows);
QAxObject *allEnvData = worksheet->querySubObject("Range(QString)", Range);
QVariant allEnvDataQVariant = allEnvData->property("Value");
QVariantList allEnvDataList = allEnvDataQVariant.toList();
QVector<QVector<float>>tmpMat;
for(int i=0; i<= intRows-2; i++)
{
QVariantList allEnvDataList_i = allEnvDataList[i].toList();
QVector<float>tmp;
for (int var = 0; var < allEnvDataList_i.size(); ++var) {
tmp.append(allEnvDataList_i[var].toFloat());
}
tmpMat.append(tmp);
}
workbooks->dynamicCall("Close()");
// 自行添加相应头文件 <QAxObject>
// .pro 文件中添加 axcontainer,形如:QT += axcontainer