Qt 读取Execl表格数据

    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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值