【VB6|第19期】vb6通过COM组件操作Excel

news2024/9/27 7:19:03

日期:2023年7月3日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


在这里插入图片描述


文章目录

  • 一、前言
  • 二、COM技术浅谈
  • 三、通过COM操作Excel
    • (3-1)引用 Microsoft Excel Object Library 库
    • (3-2)创建、操作以及销毁 三部曲
  • 四、常见问题的处理方案
    • (4-1)引用中找不到Excel库的解决方案
    • (4-2)只有WPS Excel的电脑运行程序报错的解决方案
    • (4-3)程序运行很卡,CPU资源占用很高的解决方案


一、前言

近期帮一个客户做了一个预处理Excel的小工具,就想着总结一下关于 VB6 操作 Excel 的知识。本期主要讲解如何快速去使用 COMComponent Object Model)技术来操作Excel,并且学习一些主要的知识与概念等等,快速构建一套使用该技术的思维习惯。

二、COM技术浅谈

COMComponent Object Model)是一种微软的组件技术,用于在不同的应用程序之间进行通信和交互,其核心概念是将功能独立的代码封装为组件,每个组件具有自己的接口和实现。组件可以被其他应用程序通过 COM 接口调用和使用,实现了组件的复用和跨应用程序的互操作性。

Excel COM 组件是一种用于与 Microsoft Excel 进行交互的组件(现在也可以和新版的 WPS Excel 进行交互)。通过使用 Excel COM 组件,可以通过编程方式自动化 Excel 应用程序,执行各种任务,例如创建、读取、修改和保存 Excel 工作簿、操作工作表、单元格和公式,以及生成报表等。

三、通过COM操作Excel

要使用 Excel COM 组件,我们需要在开发环境中引用 Microsoft Excel Object Library。。在以前电脑必须安装 MS Excel,才可以使用此库;经过测试,现在电脑只安装新版本WPS Excel,也一样可以使用此库。

(3-1)引用 Microsoft Excel Object Library 库

在这里插入图片描述

(3-2)创建、操作以及销毁 三部曲

  1. 创建 Excel COM 组件;
  2. 各种想要的操作,如读值、赋值等操作;
  3. 销毁创建的 Excel COM 组件;

主要的 Excel COM 如下所示:

Excel COM说明
Excel.ApplicationExcel 应用程序的实例
Excel.WorkbookExcel 应用程序中的一个工作簿(Workbook
Excel.SheetsExcel 工作簿中所有的工作表(Worksheet
Excel.WorksheetExcel 工作簿(Workbook)中的一个工作表

示例如下:
在这里插入图片描述

Option Explicit

Private Sub Form_Load()
On Error Resume Next
    '(1)创建
    Dim xlApp As Excel.Application      'Excel COM 组件,Excel 应用程序的实例
    Dim xlBook As Excel.Workbook        'Excel COM 组件,Excel 应用程序中的一个工作簿(Workbook)
    Dim xlSheets As Excel.Sheets        'Excel COM 组件,Excel 工作簿中所有的工作表(Worksheet)
    Dim xlSheet As Excel.Worksheet      'Excel COM 组件,Excel 工作簿(Workbook)中的一个工作表
    'Set xlApp = New Excel.Application              'NO1:前期绑定,实例化对象
    Set xlApp = CreateObject("Excel.Application")   'NO2:后期绑定,实例化对象
    Set xlBook = xlApp.Workbooks.Open(App.Path & "\example.xlsx")
    Set xlSheets = xlBook.Worksheets

    '(2)操作
    xlApp.Visible = False        'Excel 应用程序窗口的可见性控制
    '当 ScreenUpdating = True 时 ,Excel 将显示对工作表的更改;
    '当 ScreenUpdating = False 时,Excel 将在后台执行操作,不显示对工作表的更改,从而提高执行速度。
    xlApp.ScreenUpdating = False 'Excel 应用程序的屏幕更新控制
    
    Set xlSheet = xlSheets(1) ' xlSheets("Sheet1")
    ' 读取单元格的值
    Debug.Print xlSheet.Range("A2").value, xlSheet.Range("B2").value
    ' 写入单元格的值
    xlSheet.Range("A3").value = "李小龙"
    Debug.Print xlSheet.Cells(3, 1).value
    
    xlApp.ScreenUpdating = True

    '(3)销毁
    ' 保存并关闭工作簿
    xlBook.Save     ' 保存Excel文件
    xlBook.Close    ' 关闭Excel文件
    xlApp.Quit      ' 关闭Excel Application对象
    
    ' 释放资源
    Set xlSheet = Nothing
    Set xlSheets = Nothing
    Set xlBook = Nothing
    Set xlApp = Nothing

End Sub

补充一点,如果想要更好的兼容性,那么最后生成 exe 的时候,将 Excel COM 全部定义为 object,采用后期绑定的方式,这样就不用纠结 Excel 版本的问题;

四、常见问题的处理方案

(4-1)引用中找不到Excel库的解决方案

如果在引用中找不到Microsoft Excel Object Library库,那么就点选“浏览(B)…”,选择安装的Excel程序,以下以 MS Excel 作为演示:

  • 点击 WIN键,然后输入 excel ,点选 打开文件位置
    在这里插入图片描述

  • 右键 Excel,点选 打开文件位置
    在这里插入图片描述

  • 按住 ctrl,接着右键点选 复制文件地址(A)
    在这里插入图片描述

  • 将地址填入,点击 打开(O)
    在这里插入图片描述

(4-2)只有WPS Excel的电脑运行程序报错的解决方案

在这里插入图片描述
对于上图所示的报错,如果不想安装 MS Excel,那么也可以安装更高版本的 WPS Excel,经过不同电脑测试,此方案可以很完美的解决此问题。

(4-3)程序运行很卡,CPU资源占用很高的解决方案

在这里插入图片描述

如果运行挺久才得到结果,期间CPU可能高达50%,而其它电脑又是正常速度的,那么此类问题的解决方案同(4-2)一致,更新 Excel 应该就可以解决了。


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/130256762

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/712481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软件测试工程师必备的27个基础技能

混迹于软件测试这么长时间了,一直想写一篇关于软件测试的经验分享的文章,但苦于工作原因迟迟未下笔。最近终于有了些闲余时间,遂决定把自己的心路历程及所感所想记录下来,与各位同行共勉。 以我多年的工作经验来看,软…

处理glibc堆栈缓冲区溢出漏洞(CVE-2018-11236)

GNU C Library(又名glibc,libc6)是一种按照LGPL许可协议发布的开源免费的C语言编译程序。 GNU C库(aka glibc或libc6)中的stdlib/canonicalize.c处理非常长的路径名参数到realpath函数时,可能会遇到32位体系…

判断平台现货白银价格趋势方法有哪些?

新手投资者面对平台现货白银走势总是束手无策,那是因为新手投资者对市场的运行规律,以及对一些常用的技术分析工具并不熟悉,最后无法判断市场走向,所以交易获利也无从谈起。下面,我们一起来讨论一些可以判别趋势的工具…

imazing是什么软件? iMazing 2.17.3备份神器,iPhone相册管理超方便!!!

相信很多小伙伴们听说过imazing,那么imazing这是一款什么软件呢,imazing是一款iOS设备管理软件,这款软件支持对基于iOS系统的设备进行数据传输与备份。 imazing是什么软件 答:imazing是一款iOS设备管理软件。 imazing是一款iOS设…

Steam搬运饰品诈骗套路,及补救措施

这几个月,圈内频频有人曝出Steam库存饰品被盗。今天我就来聊聊饰品安全问题,相信也是大家最关注的问题。 其实,市面上绝大多数库存被盗问题都是因为Steam安全信息泄露导致的。 最常见的钓鱼信息就是从Steam自身而来,例如Steam好友…

【测试数据】关于多路播放在mesh中卡顿问题

测试环境 ![(https://img-blog.csdnimg.cn/ab2c3fb7f4b945c3af2a8ecf36bd3d99.jpeg#pic_center) 各种场景数据 WEB端播放 web6路 VID_3路慢点 web第三路慢点 客户端播放 客户端6路 客户端vsWeb wifi vS mesh wifi Vs Mesh链路 wifi下还是很流畅,九路

用C语言实现“括号匹配“问题

🎈个人主页:🎈 :✨✨✨初阶牛✨✨✨ 🐻推荐专栏1: 🍔🍟🌯C语言初阶 🐻推荐专栏2: 🍔🍟🌯C语言进阶 🔑个人信条: 🌵知行合一 &#x1f…

Springboot整合Activiti详解

文章目录 版本依赖配置文件需要注意的问题画流程图activiti服务类进行编写流程部署流程定义启动流程流程实例 测试流程启动流程完成任务受理任务 版本依赖 开发工具 IDEASpringBoot 2.4.5(这里我试过SpringBoot 3.1.1版本,Activiti没有启动,…

现代卓越首席咨询顾问张智喨受邀为第十二届中国PMO大会演讲嘉宾

现代卓越首席咨询顾问张智喨老师受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:BANI时代下如何打造价值导向型PMO。大会将于8月12-13日在北京举办,敬请关注! 议题简要: 在BANI时代下,企…

机器学习14:稀疏性-Sparsity

现实世界中,问题的特征的数量往往是很大的,而其中起决定性作用的往往是很小的一部分,稀疏规则化算子的引入会学习去掉这些没有信息的特征,也就是把这些特征对应的权重置为 0。 1.稀疏性正则化:L₁ 正则化 稀疏向量通常…

Docker容器初识篇

学习-https://vuepress.mirror.docker-practice.com/basic_concept/container/ https://www.bookstack.cn/cate 什么是Docker Docker 和传统虚拟化方式的不同之处。传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应…

时间序列分解 | Matlab集合经验模态分解EEMD的信号分解

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列分解 | Matlab集合经验模态分解EEMD的信号分解 部分源码 %--------------------

JavaWeb学习路线(10)—— 关于SpringBoot的原理

一、配置文件优先级 在Springboot框架三s种配置文件的格式 application.propertiesapplication.ymlapplication.yaml Springboot是支持多配置文件的,所以当我们使用两种配置文件配置相同参数时,Springboot会执行哪一个配置文件呢?这就是Sp…

FFmpeg5.0源码阅读—— avcodec_open2

摘要:本文主要描述了FFmpeg中用于打开编解码器接口avcodec_open2大致流程的具体调用流程,详细描述了该接口被调用时所作的具体工作。   关键字:ffmpeg、avcodec_open2大致流程   注意:读者需要了解FFmpeg的基本使用流程&#…

SpringMVC (一) 什么是SpringMVC

一、回顾MVC 1.1、什么是MVC MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。…

在 ZBrush、Maya 和 Substance 3D Painter 中制作后世界末日女性角色

今天瑞云渲染小编给大家带来了蒂亚戈布兰道 (Thiago Brandao) 分享的设计极其精细后世界末日女性角色背后的秘密,解释了复杂的纹理处理过程,并谈到了创造逼真的面部特征。 介绍 我的名字是蒂亚戈-布兰道。我来自巴西,目前住在这里。从小&…

【AJAX】原生AJAX

目录 一、AJAX的使用场景 二、原生的AJAX 三、HTTP : 1、原生AJAX GET请求 1、原生AJAX POST请求 四、总结 一、AJAX的使用场景 1、页面不刷新的情况下,浏览器等搜索框输入某关键字出现多个搜索选择内容,如下图所示: 2、登录、注册界面输…

前端JS如何实现对复杂文本进行句子分割,将每句话拆分出来?

文章目录 切割句子背景简介前端如何使用NLP?技术实现 切割句子背景简介 开发中遇到一种场景,在做文本翻译这块需求时,需要对输入的原文进行一句一句话的拆分出来,传给后台,获取每句话的翻译结果,便于实现页…

clickhouse系统日志引起的root目录磁盘满的问题处理

问题及追踪 对于生产环境,尤其是配置较低的生产环境,一定要注意资源的使用 今天就遇到一个问题,服务器磁盘接近满了,部署的平台服务异常,无法提供服务 简单说一下客户环境:客户只有老的Windows server 服…

hydra的简单使用

Hydra是一款开源的暴力PJ工具,集成在kali当中。 参数功能-l指定用户名-p指定密码-L指定用户名字典-P指定密码字典-C指定所用格式为“user:password”的字典文件-en null,表示尝试空密码-es same,把用户名本身当做密码进行尝试-er 反向&#…