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

这篇具有很好参考价值的文章主要介绍了【VB6|第19期】vb6通过COM组件操作Excel。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案



一、前言

近期帮一个客户做了一个预处理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 库

【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

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

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

主要的 Excel COM 如下所示:

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

示例如下:
【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

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 ,点选 打开文件位置
    【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

  • 右键 Excel,点选 打开文件位置
    【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

  • 按住 ctrl,接着右键点选 复制文件地址(A)
    【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

  • 将地址填入,点击 打开(O)
    【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

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

【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案
对于上图所示的报错,如果不想安装 MS Excel,那么也可以安装更高版本的 WPS Excel,经过不同电脑测试,此方案可以很完美的解决此问题。

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

【VB6|第19期】vb6通过COM组件操作Excel,VB6,excel,COM组件,VB6,操作excel常见问题解决方案

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


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/130256762文章来源地址https://www.toymoban.com/news/detail-526865.html

到了这里,关于【VB6|第19期】vb6通过COM组件操作Excel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VB6.0生成二维条码的方法

    采用Microsoft Visual Basic 6.0调用EnCodePdf.dll和Wcomp.dll实现图形压缩与PDF417条码编制,先将EnCodePdf.dll、Wcomp.dll拷贝至工程文件目录下,再在VB中申明以下接口程序,按照以下指南操作即可。( Qr_Code条码调用也类似,只需将’PDF’改成’Qr’,引用EnCodeQr.dll )  { 参考项目源码下载:

    2024年02月10日
    浏览(46)
  • JavaScript与Swift的异同,python像vb6

     其实很多主流的编程语言都是大同小异,魔改了一下罢了。      JavaScript与Swift一样,是动态语言类型,即不用指定变量类型,会根据赋值的内容动态的判断出它的类型。与Swift不同的是,JavaScript定义变量的时候,也不需要指定变量类型或者必须得赋初始值。JavaScript可以在赋

    2024年01月16日
    浏览(43)
  • VB6.0 设置窗体的默认焦点位置在 TextBox 中

    在VB6.0中,窗体(Form)加载时会触发多个事件,这些事件按照特定的顺序执行。下面是窗体加载过程中常见事件的执行顺序: Form_QueryUnload 事件:在窗体即将关闭之前触发。你可以在此事件中进行一些清理操作或询问用户是否真的要关闭窗体。 Form_Unload 事件:在窗体关闭之前

    2024年02月09日
    浏览(57)
  • VB.NET调用VB6 Activex EXE实现PowerBasic和FreeBasic的标准DLL调用

    VB6写的ActiveX EXE公共对象是外置进程,因此,尽管它是x86 32位的进程,但可以集成到 VB.NET的x64和x32程序中使用。 VS2022的VB.NET程序,调用ActiveX DLL对象我在上篇笔记中写了 VB.NET通过VB6 ActiveX DLL调用PowerBasic及FreeBasic动态库_Mongnewer的博客-CSDN博客 为了简短,调用ActiveX exe就在它上

    2024年02月11日
    浏览(42)
  • VB6 注册表的递归访问与面象对象模块化封装

    1)较低层次的封装 “过程化模块封装” 模块: Module1包含windows API 注册表相关函数声明 及少量的 GetValue、SetValue函数等浅封装。 2)较高层次的封装 基于面向对象:类模块CEnumReg定义属性、方法、事件。 核心方法 EnumAll(hkey As Long, ByVal subkey As String) 1.该方法的作用递归枚举指

    2024年02月02日
    浏览(36)
  • 逆向大漠插件/用VB6.0实现后台鼠标移动和后台鼠标左键点击

    自动化设计软件,在一款做门的设计软件CypCut6.3 上实现了自动化勾选了 复选框。一切都是基于后台的。 Private Const GW_CHILD = 5 Private Const GW_HWNDFIRST = 0 Private Const GW_HWNDNEXT = 2 Public Declare Function FindWindow Lib \\\"user32\\\" Alias \\\"FindWindowA\\\" (ByVal lpClassName As String, ByVal lpWindowName As String) As Lon

    2024年02月07日
    浏览(52)
  • vb.net对EXCEL进行读写,保姆级教程

    保姆级步骤 1.在桌面创建一个.xls或.xlsx的Excel表格,将其命名为ReadExcelTest,创建好文件后右键选择属性,会出现以下界面,将位置记录 2.创建一个VB.WPF应用程序项目,将其命名为:WpfApp-Read-write_Excel 3.在创建好的界面中添加Button控件(选中Button拖动到“2”的位置) 4.双击But

    2024年02月05日
    浏览(32)
  • 真·VB.NET彻底释放Interop.Excel对象

    使用 Microsoft.Office.Interop.Excel 虽然有速度慢的缺点;但是作为自带引用,兼容性最好,而且是COM对象模型也很熟悉(Excel里直接录个宏,很方便把VBA代码转成VB.NET)。所以处理几百上千条的小数据时还是很方便的。 而 Microsoft.Office.Interop.Excel 用得不多的最大问题其实就是拿简单例

    2024年02月12日
    浏览(39)
  • vb.net 实现excel导入的时候滚动显示导入的数据

      如果你想在 Excel 导入过程中滚动显示导入的数据,可以使用逐行读取 Excel 数据并在滚动窗口中显示。 在 VB.NET 中,你可以使用 Excel.Range 对象逐行读取 Excel 数据,并将每行数据添加到滚动窗口(如 ListBox 或 TextBox )中进行显示。以下是一个示例代码,展示如何实现逐行滚动

    2024年02月05日
    浏览(35)
  • C# Winfrom通过COM接口访问和控制Excel应用程序,将Excel数据导入DataGridView

    1.首先要创建xlsx文件 2.在Com中添加引用 3. 添加命名空间         using ApExcel = Microsoft.Office.Interop.Excel;         --这样起个名字方面后面写 4.样例 5.获取sheet.Cells值的时候也可以不使用强制转换,还要注意这个的下标是从1开始的

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包