计算机管理系统——VB与Excel联系
今天爆震室管理系统——学生查看机器状态的时候发现有一个“导出到excel”的button。我去。感情还得跟excel表链接。
于是我咬碎了一地小银牙。一个下午都在查询vb与excel
的链接的问题。
我大体的思路是:
首先。在vb中引用Excel类型库。
如图:
其次,声明excel的对象。这里不单单仅仅是声明一个excel表,还要声明工作簿和工作表
例如以下代码:
|
Dim xlApp As Excel.Application |
|
|
Dim xlBook As Excel.Workbook |
|
|
Dim xlSheet As Excel.Worksheet |
最后,就能够在vb程序对excel表进行操作。
在机房管理系统中主要的操作有:
|
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类 |
|
|
xlApp.Visible = |
|
|
Set xlBook = xlApp.Workbooks.Open(App.Path & "\新建 Microsoft Excel 工作表.xls") '打开EXCEL工作簿 |
|
|
Set xlSheet = xlBook.Worksheets(1) '打开EXCEL工作表 |
|
|
xlSheet.Activate '激活工作表 |
|
|
xlSheet.Cells(1, 1) = myflexgrid.TextMatrix(0, 0)……'给单元格1行驶列赋值 |
|
|
xlBook.RunAutoMacros (xlAutoOpen) '执行EXCEL中的启动宏 |
另外,另一些拓展的操作:
|
xlSheet.PrintOut '打印工作表 xlBook.Close (True) '关闭工作簿 xlApp.Quit '结束EXCEL对象 Set xlApp = Nothing '释放xlApp对象 |
问题1(excel宏的作用):
EXCEL提供一个VisualBasic编辑器,打开VisualBasic编辑器,当中有一project属性窗体,点击右键菜单的"插入模块",则添加一个"模块1",在此模块中能够运用VisualBasic语言编写函数和过程并称之为宏。当中,EXCEL有两个自己主动宏:一个是启动宏(Sub Auto_Open()),还有一个是关闭宏(SubAuto_Close())。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自己主动执行启动宏。同理,当关闭含有关闭宏的工作簿时就会自己主动执行关闭宏。可是通过VB的自己主动化功能来调用EXCEL工作表时,启动宏和关闭宏不会自己主动执行,而须要在VB中通过命令xlBook.RunAutoMacros(xlAutoOpen)和xlBook.RunAutoMacros
(xlAutoClose)来执行启动宏和关闭宏。
(我的理解就是EXCEL中的VBA就是VB在EXCEL中的应用)
问题2(下标越界):
面对着问题应该出在flexgrid控件上,你在设计界面时把初始列数9。既能够攻克了。
特别说明:
在运用以上VB命令操作EXCEL表时,除非设置EXCEL对象不可见。否则VB程序可继续运行其他操作。也可以关闭EXCEL。同一时候也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道。假设此时使用EXCEL对象。则VB程序会产生自己主动化错误。
形成VB程序无法全然控制EXCEL况。作VB与EXCEL失去联系。
版权声明:本文博主原创文章,博客,未经同意不得转载。
计算机管理系统——VB与Excel联系的更多相关文章
- 机房管理系统——vb与excel链接2
因为我之前找的文档让我以为在创建表里面走了非常大的误区,所以当时我直接就在学生管理系统的目录里建了张表,执行时候直接打开这样表即可了. 可是这里面还是存在着非常大的误区. 后来我看了周坤的博客感觉他比 ...
- 办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL
办公用品管理系统VB——库存数量导出EXCEL,SaveEXCEL 总体来说,VB的EXCEL导出效率还是蛮低的,就是一个小型化的办公用品管理软件,不再优化了. 时间紧迫,就没有从头到尾的用C#编写, ...
- C#/VB.NET Excel数据分列
C#/VB.NET Excel数据分列 有时候我们需要将保存在Excel单元格中的组合型数据拆分为多列(如将全名拆分为姓和名两列)以方便我们处理.记忆或保存.为了避免重复和大量的手动输入工作,Exce ...
- VB操作EXCEL文件
用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel. ...
- 用VB操作Excel的方法
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便.因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报 ...
- VB操作EXCEL文件大全
Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection)'' Dim tmp1 Dim i1 As Integer, i ...
- VB中Excel 2010的导入导出操作
VB中Excel 2010的导入导出操作 编写人:左丘文 2015-4-11 近来这已是第二篇在讨论VB的相关问题,今天在这里,我想与大家一起分享一下在VB中如何从Excel中导入数据和导出数据到Ex ...
- VB读写Excel
近期用excel和VB比較多,就简单的学习了一下VB中对Excel的处理.今天就介绍一些吧. 在VB中要想调用Excel,须要打开VB编程环境“project”菜单中的“引用”项目 ...
- 如何使用VB编写Excel的COM组件
1 新建工程中选择"外接程序",点击打开之后右侧的属性窗口即显示为MyAddIn工程.(注意如果你使用的是VB精简版的没有"外接程序"的选项,请下载完整版的) ...
随机推荐
- 每日一小练——高速Fibonacci数算法
上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...
- iOS得知1_初体验
UIView:父类的所有控件,所有的UIView它是一个容器.可容纳其他UIView UIController:用于控制UIView,责创建/销毁自己的UIView,显示/隐藏UIView.处理UIV ...
- NLP 苏图南 打破自我设限 突破自我—在线播放—优酷网,视频高清在线观看
http://v.youku.com/v_show/id_XNTAyNDg3MTky.html?x
- openstack之nova-api服务流程分析
nova-api公布api服务没实用到一个些框架,基本都是从头写的.在不了解它时,以为它很复杂,难以掌握.花了两三天的时间把它分析一遍后,发现它本身的结构比較简单,主要难点在于对它所使用的一些类库不了 ...
- Java 实现二分(折半)插入排序
设有一个序列a[0],a[1]...a[n];当中a[i-1]前是已经有序的,当插入时a[i]时,利用二分法搜索a[i]插入的位置 效率:O(N^2),对于初始基本有序的序列,效率上不如直接插入排序: ...
- Codeforces Jzzhu and Sequences(圆形截面)
# include <stdio.h> int f[10]; int main() { int x,y,n,j; while(~scanf("%d%d%d",& ...
- JDK1.8源码分析之HashMap(一) (转)
一.前言 在分析jdk1.8后的HashMap源码时,发现网上好多分析都是基于之前的jdk,而Java8的HashMap对之前做了较大的优化,其中最重要的一个优化就是桶中的元素不再唯一按照链表组合,也 ...
- Java EE (9) -- JDBC & JTA
Connection接口中定义了5中隔离级别常量 Connection.TRANSACTION_NONE -- 不支持事务 Connection.TRANSACTION_READ_UNCOMMIT ...
- boost事件处理
尽管这个库的名字乍一看好象有点误导,但实际上并不是如此. Boost.Signals 所实现的模式被命名为 '信号至插槽' (signal to slot).它基于下面概念:当相应的信号被发出时.相关 ...
- Core 1.0中的管道-中间件模式
ASP.NET Core 1.0中的管道-中间件模式 SP.NET Core 1.0借鉴了Katana项目的管道设计(Pipeline).日志记录.用户认证.MVC等模块都以中间件(Middlewar ...