您当前的位置: 首页 >  qt

令狐掌门

暂无认证

  • 0浏览

    0关注

    513博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Qt读excel获取exel数据

令狐掌门 发布时间:2022-01-23 19:27:09 ,浏览量:0

Qt提供了com对象操作的类QAxObject,可以通过该类读写execel数据,例如下图的excel: 在这里插入图片描述

下面是Qt读excel并打印内容的代码:

#include "widget.h"
#include "ui_widget.h"
#include 
#include 
#include 
#include 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    QAxObject *excel = new QAxObject(this);
    excel->setControl("Excel.Application");
    excel->setProperty("Visible", false);    //显示窗体看效果,选择ture将会看到excel表格被打开
    excel->setProperty("DisplayAlerts", true);
    QAxObject *workbooks = excel->querySubObject("WorkBooks");   //获取工作簿(excel文件)集合

    QString str = QFileDialog::getOpenFileName(this,"打开",
                                               QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation),
                                               "Excel 文件(*.xls *.xlsx)");

    //打开刚才选定的excel
    workbooks->dynamicCall("Open(const QString&)", str);
    QAxObject *workbook = excel->querySubObject("ActiveWorkBook");
    QAxObject *worksheet = workbook->querySubObject("WorkSheets(int)",1);
    QAxObject *usedRange = worksheet->querySubObject("UsedRange");   //获取表格中的数据范围

    QVariant var = usedRange->dynamicCall("Value");  //将所有的数据读取刀QVariant容器中保存
    QList excel_list;  //用于将QVariant转换为Qlist的二维数组
    QVariantList varRows=var.toList();
    if(varRows.isEmpty())
    {
         return;
    }

    const int row_count = varRows.size();
    QVariantList rowData;
    for(int i=0;i            
关注
打赏
1652240117
查看更多评论
0.0395s