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

news/2024/11/24 8:46:14/

日期: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.ppmy.cn/news/703581.html

相关文章

UE4/5动画蓝图中Additive Animations讲解

Additive Animation指用当前动画作为Additive动画减去参考位置后得到的Delta量,再通过Apply Additive节点将任意动画输出套用该Delta量,从而达到动画叠加的效果。 官方案例的Additive Animation案例,位于“内容示例/Animation_Basics”场景中…

MS iCraft Z790ITX WIFI 电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板MS iCraft Z790ITX WIFI 处理器Intel Core i5-13400已驱动 内存Asgard DDR5 6400CL32 16GBx2 RGB已驱动 硬盘西数 WDS250G3X0C-00SJG0 ( SN750) …

alsa音频架构2-ASoc

设计ASoc的目的是为嵌入式系统片上处理器音频单元或外部的音频解码芯片提供更好的ALSA支持 ASoC有多个组件组成snd_soc_platform/snd_soc_codec/snd_soc_dai/snd_soc_card以及ALSA的snd_pcm snd_soc_platform和snd_soc_codec就行平台与设备的关系缺一不可,snd_soc_card是它们…

UAP是什么

UAP是什么? 大中型企业与公共组织的统一应用平台 用友UAP(Unified Application Platform)是面向大中型企业与公共组织的统一应用平台,它是用友公司从多年应用软件研制过程中提炼出来的模型、模板、开发工具、应用框架、中间件、基…

黑苹果详细安装教程-基于OpenCore官网指导-UPUPMO(macOS Monterey)

文章大纲 01. 必备知识 02. 作者当前硬件说明 03. 主板 BIOS 版本升级 04. 确定声卡、网卡信息 05. 配置 EFI 驱动 06. 配置 ACPI(SSDTs) 07. 配置 config.plist 08. 制作启动盘(苹果官网恢复镜像) 09. 配置主板 BIOS 10. 开始安…

At91sam9261的AIC

摘自:http://blog.csdn.net/llf021421/article/details/6967116 1. 中断源使能 对于每一个中断源,包括中断源0中的FIQ,可以通过命令寄存器AIC_IECR(中断使能命令寄存器)和AIC_IDCR(中断禁用命令寄存器)被使能和禁止. 中断的屏蔽状态可以在A…

AH8696_非隔离IC,AC220V降12V500MA,超高效简约电路,电源芯片IC*

AC220V转换为DC12V非隔离AC-DC降压芯片型号是AH8696, AH8696是一款高性能低成本PWM 控制功率开关,适用于离线式小功率降压型应用场合,外围电路简单 、外围元件数目极少 应用方案,220V转直流12V,交流220V转5V,交流220V转…

Linux ALSA 之十:ALSA ASOC Machine Driver

ALSA ASOC Machine Driver 一、Machine 简介二、ASoC Machine Driver2.1 Machine Driver 的 Platform Driver & Platform Device 驱动模型2.2 在 Probe() 中注册声卡 三、snd_soc_register_card 函数3.1 bind DAIs3.2 New a sound card3.3 Create card new widgets3.4 Prob…