QT之Excel表格操作

2023-11-14

提前准备

pro文件中添加:
QT += axcontainer
在需要使用excel的文件中添加:
#include <QAxObject>
#include <QFile>

打开读取excel文件

    QAxObject *excel = NULL;    //本例中,excel设定为Excel文件的操作对象
    QAxObject *workbooks = NULL;
    QAxObject *workbook = NULL;  //Excel操作对象
    int column_count;
    QStringList data;
    QString dbname;
    QString sql_date;

    excel = new QAxObject("Excel.Application");
    excel->dynamicCall("SetVisible(bool)", false); //true 表示操作文件时可见,false表示为不可见
    excel->setProperty("EnableEvents",false);
    workbooks = excel->querySubObject("WorkBooks");

    QString nums = QFileDialog::getOpenFileName(this,tr("选择文件"),"./",tr("*.xls *.xlsx"));
    if(nums.isEmpty())
    {
        return;
    }
    QFile *file = new QFile;
    file->setFileName(nums);
    if(file->open(QIODevice::ReadOnly))
    {
        workbook = workbooks->querySubObject("Open(QString&)", nums);
        // 获取打开的excel文件中所有的工作sheet
        workbook = excel->querySubObject("ActiveWorkBook");  //获取工作簿
        QAxObject * worksheets = workbook->querySubObject("WorkSheets");
        int iWorkSheet = worksheets->property("Count").toInt();  //获取工作表的数目

        //qDebug() << QString("Excel文件中表的个数: %1").arg(QString::number(iWorkSheet));
        QAxObject* pWorkSheet = workbook->querySubObject("Sheets(int)", 1);//获取第一张表
        QAxObject* used_range = pWorkSheet->querySubObject("UsedRange"); //获取该sheet的使用范围对象
        QVariant var = used_range->dynamicCall("Value");

        QAxObject *rows  = used_range->querySubObject("Rows");
        QAxObject *columns = used_range->querySubObject("Columns");

        int row_start = used_range->property("Row").toInt();          //获得开始行
        int column_start  = used_range->property("Column").toInt();     //获得开始列
        int row_count = rows->property("Count").toInt();
        column_count = columns->property("Count").toInt();

        delete used_range;
        QVariantList varRows = var.toList();            //得到表格中的所有数据
        if(varRows.isEmpty()){return;}
        const int rowCount = varRows.size();
        qDebug()<<"总行数:"<<row_count;
        qDebug()<<"总列数:"<<column_count;
        for(int i = 0;i<rowCount-1;i++)      
        {
            QVariantList rowData = varRows[i].toList();
            qDebug()<<"数据:"<<i<<rowData[4].toString();  
        }

        workbook->dynamicCall("Close()");
        excel->dynamicCall("Quit()");       //断开连接,接收新的连接
        file->close();                      //关闭文件
    }
    else
    {
        qDebug()<<"没有文件";
    }
    workbook->dynamicCall("Close (Boolean)", false);  //关闭文件
    delete excel;               //回收指针
    excel = NULL;

写入保存excel文件

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT之Excel表格操作 的相关文章

  • QLineEdit:显示处理后的文本,而不是输入的文本,但保留它(自定义回显模式)

    我想要一个QLineEdit不显示输入的文本 而是显示经过处理的版本 同时保留原始文本并在通过请求时返回它text 就像密码回显模式一样 但我不希望每个字符都被屏蔽 我想虚拟化空间 例如什么时候some text with spaces i
  • 双击打开 Excel 工作簿时,Excel 2010 AddIn 未加载

    我为 Excel 2010 编写了一个加载项 如果我从 开始 菜单打开 Excel 它可以正常工作 但是 如果我双击 Excel 工作簿 则无法加载 AddIn 我签入了ThisAddIn cs 方法InternalStartup 没有参与
  • 如何用xlrd读取公式

    我正在尝试做一个解析器 它读取几个 Excel 文件 我通常需要位于行底部的值 您可以在其中找到所有上部元素的总和 因此 单元格值实际上是 sum 或 A5 0 5 可以说 对于使用 Excel 打开此文件的用户来说 它看起来像一个数字 这
  • 当 QML 对象不可见时防止 QML 属性绑定?

    我正在开发一个具有大量属性绑定的 QML 应用程序 数百个对象被跟踪并以不同的形式显示 例如 Qt3D QCanvas 当我在应用程序的单独页面上时 x y 位置和相对大小的属性绑定仍在发生 我怎样才能阻止他们 我知道我可以根据属性是否可视
  • Qt 5.0.1:应用程序不会在 Qt 创建者之外执行

    我正在尝试运行程序 TransitTalker exe 这是我从 qt 编译的代码 如下图所示 https www dropbox com s ypgklrm4uschri5 filecontents png https www dropb
  • VBA 代码中的 Excel 公式

    所以 在 Sheet1 中 我有一些名称的基础 它看起来像这样 在 Sheet2 中 我正在使用 Sheet1 中的这些名称 我这样做的方式是在 A 列中输入代码值 在 B 列中输入名称 在 C 列中输入姓氏 看起来像这样 我已经用公式完成
  • Excel - 根据选择创建图表的宏

    我想就以下问题寻求您的帮助 因为我必须创建大量图表 所以我想要一个宏来根据我的选择插入图表 由于我对 VBA 没有任何了解 但现在需要它 至少现在 我真的应该自己学习使用它 我将感谢您的帮助 基本上 我需要知道如何调整我记录的代码 以便根据
  • 使用查询选择器从 VBA 中抓取

    我使用了该网站的代码来提取数据site https bazashifer ru proflist profnastil Option Explicit Public Sub GetInfo Dim sResponse As String i
  • 如何将 Excel 中的图表导出为图形

    我有一系列 Excel 电子表格 每个电子表格至少包含一页数据和一页根据数据创建的图表 我需要捕获 不从数据中重新生成 将现有图表作为网络友好图像 这可以通过 Java 或 Net 实现吗 我知道 POI 的东西 Java 不会这样做 或者
  • 如何粘贴到Excel B列的最后一行?

    我需要将单元格从 H2 L2 一直向下剪切并将其粘贴到 B 列的最后一行 数据每次都会不同 所以我无法对任何范围进行硬编码 VBA 代码会很好 从 H2 L2 向下剪切并粘贴 插入到 B 列的最后一行 到目前为止我得到了 Range H2
  • SSIS使用列位置而不是名称导入Excel文档

    我想知道是否可以通过按位置引用列来使用 SSIS 导入 Excel 文档 例如 导入列 A D M AA 等 我问这个问题是因为我需要从第三方加载多个 Excel 文档 每个文档在相应的列中包含相同的数据类型 但每个文档的列名称不同 Tha
  • 非相邻单元格作为数组函数的输入(MIN 和 ISBLANK)

    提出了这个问题 由于具体问题的答案是一个拼写错误 因此被删除 https stackoverflow com questions 59289065 excel non adjecent cells as input to array fun
  • 如何计算 COUNTIF 但仅计算唯一值?

    我有一个数据集 其中有一列包含参考文献 参考文献始终遵循相同的格式 1 XXX YYY XXX 始终为 3 个字母 YYY 始终是一个数字 每个XXX都会有YYY 001 如果同一个XXX有多个类型 就会有YYY 002 以此类推 我想知道
  • 如果 FIND 函数在 vba 中找不到任何内容,那么[重复]

    这个问题在这里已经有答案了 我目前正在自动化执行以下步骤的手动流程 1 提示用户打开一个数据文件并打开文件 2 插入4列 3 使用文件中已有的数据创建格式为 DD MM YYYY TEXT 的唯一字符串 其中文本是变量 4 使用 if 语句
  • 运行时错误“1004”:对象“_Global”的方法“Range”失败

    我在使用 Excel 时遇到问题 有一个生成参考号的表单 但是当我尝试生成参考号时 它有一条错误消息 运行时错误 1004 对象 Global 的方法 Range 失败 当我点击 调试 按钮时 它显示的代码如下 它突出显示代码第 4 行的错
  • 如何将 HTML 表格导出为 .xlsx 文件

    我有一个关于导出的问题HTML表格 as an xlsx文件 我做了一些工作 现在我可以将其导出为xls 但我需要将其导出为xlsx 这是我的 jsFiddle https jsfiddle net 272406sv 1 https jsf
  • Excel 宏与 Javascript

    我希望使用 Javascript 中的宏而不是默认的 VBA 来操作 Excel 电子表格 我可以使用以下 VBA 代码执行 javascript 代码 javascript to execute Dim b As String b fun
  • Excel 工作表到 iPhone 数据 -- A 点到 B 点

    尽可能简单 我有一个非常简单的 Excel 电子表格 只有 1000 多条记录 我想将其用作 iPhone 应用程序的静态数据源 最好的进攻计划是什么 我心中的可能性 1 直接读取XLS作为数据源 是否有Obj C库用于此 2 将XLS 转
  • 如何使用 Excel.UriLink.16 更改 Excel URL 的文件关联?

    我正在尝试更改文件关联 以便在另一个浏览器中打开 Excel 单元格中的 URL 根据使用 CMD ftype命令与Excel UriLink 16 我应该能够使用以下命令从 powershell 通过 cmd 执行此操作 To chang
  • java实现excel价格、收益率函数[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 四个视角,讲透额温枪应用设计中的运放问题

    3 月 12 号 世界卫生组织宣布新冠肺炎为全球性流行病 抗疫正从中国的 人民战争 变成一场 世界大战 很多事情正在微妙和快速的变化 额温枪和口罩一样 成为抗疫以及复产复工必不可少的日常用品 额温枪成了市场上炙手可热的产品 很多厂家开始步入
  • Top n 开源物理仿真引擎

    物理仿真引擎可以做为强化学习用 也可以做游戏等 列举主要几个开源的 pybullet Webots 开源早的 用户也多 比如 pybullet提供Python API 学习曲线较平缓 Nvidia的isaac 新开源不久 GPU支持好 Mu
  • 微信能上但浏览器无法上网

    微信能上但浏览器无法上网 问题描述 微信能聊天传文件 但是浏览器一直显示 未链接到互联网 问题描述 网络诊断提示 远程计算机或设备将不接受链接 出现这类问题 一般都是电脑打开了SSR代理服务 关闭了代理服务基本上就可以恢复正常上网了 解决方
  • Unity的C#编程教程_47_函数和方法

    C Functions and Methods Overview 1 Functions vs Methods 函数和方法其实就是一个东西 在 C 中通常称之为方法 方法 就是一块打包的代码 比如我们最常见的 就是在 Unity 中初始化
  • Mac git 命令自动提示

    1 首先安装配置Homebrew 注 如果已经安装过就跳过 在终端输入如下命令 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install master
  • 【GitLab】docker部署个人代码私服(开源gitlab)

    文章目录 前期准备 安装部署 拉取Gitlab镜像文件 创建容器挂在卷轴目录 运行镜像 修改配置文件 重启容器 使用说明 初次登陆 更改语言模式 创建新用户 邮件转发服务 总结 前期准备 准备一台CentOS7 8 以上版本的服务器 标配2
  • 编程题目:求二叉树的叶子结点个数(涉及前中序遍历,建树,叶子节点个数)

    以二叉链表作为二叉树的存储结构 求二叉树的叶子结点个数 输入格式 输入二叉树的先序序列 提示 一棵二叉树的先序序列是一个字符串 若字符是 表示该二叉树是空树 否则该字符是相应结点的数据元素 输出格式 输出有两行 第一行是二叉树的中序遍历序列
  • 关注深度学习代码

  • 【DA 03】Exploring Categorical Regularization for Domain Adaptive Object Detection (CVPR 2020)

    摘要 解决目标检测的域自适应问题 其中主要是source和target域之间的巨大差异 前人的工作主要在对齐image level和Instance level shifts Bias 07 DA Faster RCNN 然而 他们忽略去了
  • NO.55——Face Swapping with Python,dlib,openCV(换脸)

    摘要 早前看过国外博主的一篇用200行代码实现图像换脸操作的文章 主要通过仿射变换和调色的方法 原理呢 晦涩难懂 具体效果呢 其实也并不是很理想 至少要比直接调用Face 的人脸融合接口要差很多 用于学习图像处理相关的知识还是不错的 下一篇
  • IoT Studio场景最佳实践——实践类

    1 使用IoT Studio快速构建可视化应用 在物联网业务场景中设备数据可视化应用是最普遍的需求 阿里云物联网应用开发 IoT Studio 提供了Web可视化开发 移动可视化开发 业务逻辑开发与物联网数据分析等一系列便捷的物联网开发工具
  • js版飞机大战

    div div
  • 用c语言对文件进行加密

    用C语言对文件进行简单加密的操作 这里主要用的加密思路是破坏文件头 使得系统无法识别文件从而进行加密 最初的思路是将用户输入的加密口令转成ASCII码 再与文件头数据循环进行异或操作 从而破坏文件头数据 使得系统无法识别文件 而从安全性上来
  • 最新!Photoshop 2022 (ps2022)中文

    Photoshop 2022拥有超强的图片编辑功能 对图片调整强度 饱和度 亮度 从照片编辑和合成到数字绘画 动画和图形设计 只要能想到 就能在Photoshop中创作出来 包括神经滤镜 天空更换以及增强的云文档等 可以让设计者的工作更加高
  • ORA-01502: 索引或这类索引的分区处于不可用状态

    一 问题描述 插入数据时 出现如下报错 ORA 01502 索引或这类索引的分区处于不可用状态 英文 ora 01502 index schema index name or partition of such index is in un
  • (五)unity shader基础之——————学习shader所需的数学基础:下篇(坐标空间:模型空间、世界空间、观察空间、裁剪空间、屏幕空间、法线变换等)

    一 坐标空间 上篇文章讲述了如何使用矩阵来表示基本的变换 如平移 旋转和缩放 在本节我们将关注如何使用这些变换来对坐标空间进行变换 渲染游戏的过程可以理解成是把一个个顶点经过层层处理最终转换为屏幕上的过程 本节我们就将学习这个转换过程是如何
  • Python类和对象编写一个小游戏【含注释】

    定义一个鱼类和龟类并编写游戏 假设游戏场景为范围 x y 为0 lt x lt 10 0 lt y lt 10 游戏生成1只乌龟和10条鱼 它们的移动方向均随机 乌龟的最大移动能力是2 Ta可以随机选择1还是2移动 鱼儿的最大移动能力是1
  • 集合--10万随机数问题

    1 求十万个数据每个数据出现的次数 import java util ArrayList import java util Random import java util HashMap import java util Iterator
  • torch.optim.SGD()

    其中的SGD就是optim中的一个算法 优化器 随机梯度下降算法 PyTorch 的优化器基本都继承于 class Optimizer 这是所有 optimizer 的 base class torch optim是一个实现了各种优化算法的
  • QT之Excel表格操作

    QT之Excel表格操作 提前准备 打开读取excel文件 写入保存excel文件 提前准备 pro文件中添加 QT axcontainer 在需要使用excel的文件中添加 include