当前位置: 首页 > article >正文

QT 中使用QXlsx 读写文件

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文件中的内容读取出来。


http://www.kler.cn/a/301786.html

相关文章:

  • 37.超级简易的计算器 C语言
  • Amazon Web Services (AWS)
  • 使用Java绘制图片边框,解决微信小程序map组件中marker与label层级关系问题,label增加外边框后显示不能置与marker上面
  • 深入解析 CentOS 7 上 MySQL 8.0 的最佳实践20241112
  • 20.UE5UI预构造,开始菜单,事件分发器
  • Java基础——多线程
  • Linux学习-Docker文件系统
  • 3. 轴指令(omron 机器自动化控制器)——>MC_PowerMC_MoveJog
  • mysql的zip解压缩版安装
  • MySQL根据日期统计时没有数据的日期也需要返回0
  • 图计算:基于SparkGrpahX计算聚类系数
  • 在Linux系统中“普通场景”下隐匿操作痕迹
  • 算法学习攻略总结 : 入门至进阶,通关之路指南
  • jmeter依赖jar包找不到类路径
  • CTF(misc)
  • 微调语言模型前,需要考虑这三个关键方面
  • pwn题目搭建过程中glibc出现问题的解决方案
  • 计算机视觉学习路线
  • 获取STM32 MCU的唯一ID
  • vue国际化
  • Job定时自动执行SQL日志记录脚本
  • OCC开发_变高箱梁全桥建模
  • Mysql梳理3——基本的SELECT语句
  • 【Linux】Linux常见指令以及权限理解(下)
  • 【PyTorch单点知识】像素洗牌层:torch.nn.PixelShuffle在超分辨率中的作用说明
  • centos模式切换