• QT快速读取Excel


    获取文件的绝对值路径

    QFileInfo info(QStringLiteral("../GongCheng1/file/阿达.txt")); 

    QString strFile=info.absoluteFilePath();

     1 //QT+=axcontainer
     2 
     3 #include <QFileDialog>
     4 #include <QAxObject>
     5 #include <QVariant>
     6 #include <QList>
     7 
     8 void getExcelContent(QList<QList<QVariant>>& result)
     9 {
    10     QString filePath=QFileDialog::getOpenFileName(
    11         this, QStringLiteral("选择Excel文件"), "",
    12         QStringLiteral("Exel file(*.xls *.xlsx)"));
    13     if(filePath.isEmpty)return;
    14     
    15     QAxObject* excel=new QAxObject(this);
    16     excel->setControl("Excel.Application");//连接Excel控件  
    17     excel->dynamicCall("SetVisible (bool Visible)","false");//不显示窗体  
    18     excel->setProperty("DisplayAlerts"false);//不显示任何警告信息。如果为true那么在关闭是会出现类似“文件已修改,是否保存”的提示
    19 
    20     //打开文件
    21     QAxObject *workbooks = excel->querySubObject("WorkBooks");//获取工作簿集合
    22     QAxObject *workbook = excel->querySubObject("Open (const QString &)", filePath);//获取当前工作簿
    23   
    24     //打开表
    25     //QAxObject *worksheets = workbook->querySubObject("Sheets");//获取工作表集合  
    26     QAxObject *worksheet = worksheets->querySubObject("Item(int)",1);//工作表1,即sheet1 
    27 
    28     //获取表中的数据到QVariant中
    29     QAxObject *usedRange=worksheet->querySubObject("UsedRange");
    30     QVariant var=usedRange->dynamicCall("value");
    31     
    32     QVariantList varRowContents=var.toList();
    33     const int rowCount=varRowContents.size();
    34     QVariantList tmp;
    35     for(int i=0; i<rowCount; ++i)
    36     {
    37         tmp=varRowContents[i].toList();
    38         result.append(tmp);
    39     }

        //删除,防止程序关闭后有excel进程残留
        excel->dynamicCall("Quit(void)");
        delete excel;
    40 }
  • 相关阅读:
    windows启动、停止和重新启动Apache服务
    Mysql用户密码设置修改和权限分配
    MySQL数据库恢复(使用mysqlbinlog命令)
    影响MySQL性能的五大配置参数
    PHP获取文件后缀名的三种方法
    php 设计模式
    蓦然回首,那人却在灯火阑珊处
    websocket消息推送实现
    Spring任务调度之Quartz
    使用easyui的form提交表单,在IE下出现类似附件下载时提示是否保存的现象
  • 原文地址:https://www.cnblogs.com/wangbin-heng/p/10227491.html
Copyright © 2020-2023  润新知