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

news/2024/4/29 4:39:02/文章来源:https://blog.csdn.net/qq_35844043/article/details/130256762

日期: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 ExplicitPrivate 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).valuexlApp.ScreenUpdating = True'(3)销毁' 保存并关闭工作簿xlBook.Save     ' 保存Excel文件xlBook.Close    ' 关闭Excel文件xlApp.Quit      ' 关闭Excel Application对象' 释放资源Set xlSheet = NothingSet xlSheets = NothingSet xlBook = NothingSet xlApp = NothingEnd 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.luyixian.cn/news_show_325523.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【elementplus】解决el-table开启show-overflow-tooltip后,tooltip的显示会被表格边框遮挡的问题

如图所示: 原因: 1. el-table没有设置高度;2.就是被遮住了 解决: 方法一:给el-table设置高度 方法二: .el-table {overflow: visible !important;}如果不想给el-table设置高度,就直接使用方法二解决即可

MyBatisPlus基础知识

一、MyBatisPlus 1.MyBatisPlus入门案例与简介 这一节我们来学习下MyBatisPlus的入门案例与简介,这个和其他课程都不太一样,其他的课程都是先介绍概念,然后再写入门案例。而对于MyBatisPlus的学习,我们将顺序做了调整&#xff0…

初级保育员专业知识生活管理考试题库及答案

​本题库是根据最新考试大纲要求,结合近年来考试真题的重难点进行汇编整理组成的全真模拟试题,考生们可以进行专项训练,查漏补缺巩固知识点。本题库对热点考题和重难点题目都进行了仔细的整理和编辑,相信考生在经过了针对性的刷题…

JAVA开发( 腾讯云消息队列 RocketMQ使用总结 )

一、问题背景 之所以需要不停的总结是因为在java开发过程中使用到中间件实在太多了,久久不用就会慢慢变得生疏,有时候一个中间很久没使用,可能经过了很多版本的迭代,使用起来又有区别。所以还是得不断总结更新。最近博主就是在使用…

jenkins的环境搭建

jenkins 环境 安装 我之前使用war安装、安装比较简单、就是jenkins的 对应的插件不能下载下来、后来发现是版本的问题、使用docker-compose 安装、jenkins安装 插件很容易安装下来 1、安装jdk 解压jdk 配置环境变量 #set java environment JAVA_HOME/usr/local/jdk1.8.0_281…

blender 之点云渲染(论文渲图)

blender 之点云渲染(论文渲图) 一、导入点云1.新建2.导入点云3.位置移动&放大缩小 二、Geometry Nodes实体化点云1.新建节点2.实体化 三、给实体化点云添加材质四、设置渲染引擎更换为Cycles。 五、对准视角1.新建一个球2.创建相机视角跟踪3.将uv球挪…

二、Spring Cloud Eureka 简介、快速入门

注册发现中心 Eureka 来源于古希腊词汇,意为“发现了”。在软件领域, Eureka 是 Netflix 在线影片公司开源的一个服务注册与发现的组件,和其他 Netflix 公司的服务组件(例如负载均衡、熔断器、网关等) 一起&#xff0…

LLM prompt提示构造案例

参考: https://github.com/PlexPt/awesome-chatgpt-prompts-zh 吴恩达 prompt工程应用: https://www.bilibili.com/video/BV1No4y1t7Zn prompt构造案例代码 prompt """文本分类任务:将一段用户给外卖服务的评论进行分类…

初级保育员专业知识配合教育考试题库及答案

本题库是根据最新考试大纲要求,结合近年来考试真题的重难点进行汇编整理组成的全真模拟试题,考生们可以进行专项训练,查漏补缺巩固知识点。本题库对热点考题和重难点题目都进行了仔细的整理和编辑,相信考生在经过了针对性的刷题练…

Linux基础笔记

已经有很长很长一段时间没有更新帖子了,一眨眼2023 已经过半,这些日子里,有太多太多事情要做了,今年只更新了几篇,这几天刚好有空,浅浅更新一篇叭!~~~ 首先,Linux是一种开源的操作系…

手搓GPT系列之 - 通过理解LSTM的反向传播过程,理解LSTM解决梯度消失的原理 - 逐条解释LSTM创始论文全部推导公式,配超多图帮助理解(下篇)

本文承接上篇上篇在此和中篇中篇在此,继续就Sepp Hochreiter 1997年的开山大作 Long Short-term Memory 中APPENDIX A.1和A.2所载的数学推导过程进行详细解读。希望可以帮助大家理解了这个推导过程,进而能顺利理解为什么那几个门的设置可以解决RNN里的梯…

git push origin masterEverything up-to-date解决方法

按住这个看一下很简单的问题,我在网上看了很多就是没找到能用的,最后找到了这个看起来写的很简单的一个文章,但他写的真的有用。 出现的问题 解决步骤第一步 git add . 第二步 git commit -m “message” 第三步 git push origin master…

PyTorch示例——ResNet34模型和Fruits图像数据

PyTorch示例——ResNet34模型和Fruits图像数据 前言导包数据探索查看数据集构建构建模型 ResNet34模型训练绘制训练曲线 前言 ResNet34模型,做图像分类数据使用水果图片数据集,下载见Kaggle Fruits Dataset (Images)Kaggle的Notebook示例见 PyTorch——…

综合实验---基于卷积神经网络的目标分类案例

文章目录 配置环境猫狗数据分类建模猫狗分类的实例基准模型猫狗分类的实例基准模型之数据增强问题回答 配置环境 ①首先打开 cmd,创建虚拟环境。 conda create -n tf1 python3.6如果报错:‘conda’ 不是内部或外部命令,也不是可运行的程序 或批处理文件…

[github-100天机器学习]day1 data preprocessing

https://github.com/LiuChuang0059/100days-ML-code/blob/master/Day1_Data_preprocessing/README.md#step-6-feature-scaling—特征缩放 数据预处理 数据帧(Data Frame) 二维的表格形式,类似于电子表格或关系型数据库中的表。数据帧通常被用来存储和操作结构化数据…

科技项目验收测试报告有什么注意事项和疑惑?

科技项目验收测试报告是一份重要的文件,用于评估科技项目的质量和可靠性,对项目的成功交付具有关键作用。在项目完成的最后阶段,通过对项目进行全面测试和评估,以确保项目符合预期的目标和需求,并满足用户的期望。 一…

3D深度视觉与myCobot 320机械臂无序抓取

今天我记录使用myCobot320 M5跟FS820-E1深度相机进行一个无序抓取物体的分享。 为什么会选择深度相机和机械臂做一个案例呢? 2D相机(最常见使用的相机)可以捕捉二维图像,也就是在水平和垂直方向上的像素值。它们通常用于拍摄静态…

卷积神经网络--猫狗系列【VGG16】

数据集:【文末】 ​ 数据集预处理 定义读取数据辅助类(继承torch.utils.data.Dataset) import osimport PILimport torchimport torchvisionimport matplotlib.pyplot as pltimport torch.utils.dataimport PIL.Image # 数据集路径train_p…

nohup命令解决SpringBoot/java -jar命令启动项目运行一段时间自动停止问题

问题描述: 在centos7上部署多个springcloud项目。出现了服务莫名其妙会挂掉一两个的问题,重新启动挂掉的服务之后又会出现其他服务挂掉的情况,查看启动日志也并没有发现有异常抛出。令人费解的是所有的服务都是通过nohup java -jar xxx.jar …

强化学习路径优化:基于Q-learning算法的机器人路径优化(MATLAB)

一、强化学习之Q-learning算法 Q-learning算法是强化学习算法中的一种,该算法主要包含:Agent、状态、动作、环境、回报和惩罚。Q-learning算法通过机器人与环境不断地交换信息,来实现自我学习。Q-learning算法中的Q表是机器人与环境交互后的…