PC 工具中需要操作xlsx格式的数据,前面使用的是QAxObject,需要一些设置,还要安装office的控件或者wps的控件,在一些电脑上面有的时候还会有异常,后面发现一个好像的开源库QXls,发现读写的速度比以前快,而且只需要简单的添加文件到工程中就可以。

Qxlsx 源码的地址:https://github.com/QtExcel/QXlsx

下载下来之后我们只是需要其中的一个文件夹:

将QXlsx 文件夹copy到你的工程目录下面

 

然后添加QXlsx.pri 到你工程的pro文件中

include($$PWD/QXlsx/QXlsx.pri)

 下面给出一个简单的例子

头文件中定义一个

  QXlsx::Document* m_xlsx = nullptr;

    if(!m_xlsx)
    {
        m_xlsx = new QXlsx::Document("./xxxxx.xlsx", this);
    }

    if(m_xlsx->load())  // 判断文件是否打开成功(也可以使用isLoadPackage)
     {
         qDebug() << "excel success";
         QXlsx::Worksheet* sheet =(QXlsx::Worksheet*) m_xlsx->sheet("SOAService_Deployment");
         if (!sheet)
         {
                qDebug() << "Sheet 'SOAService_Deployment' not found";
                return ;
         }
         else
         {
             int row=sheet->dimension().lastRow();

             for(int i=3;i<=row;i++)
             {
                 std::shared_ptr<QXlsx::Cell> cell = sheet->cellAt(i, 19);
                 if (cell)
                 {
                      QVariant value = cell->readValue();
                      model->appendRow(new QStandardItem(value.toString()));
                      qDebug() << "Row:" << i << "Column:" << 19 << "Value:" << value.toString();
                 }
                 cell = sheet->cellAt(i, 20);
                 QVariant value = cell->readValue();
                 qDebug() << "Row:" << i << "Column:" << 20 << "Value:" << value.toString();
             }
         }
     }
     else
     {
        qDebug()<<"fail";
     }

    if (m_xlsx)
    {

        delete m_xlsx;

        m_xlsx=nullptr;
    }

然后就可以把xlsx文件中的内容读取出来。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部