机房管理系统——VB与Excel的链接

今天在敲机房管理系统——学生查看上机状态的时候发现有一个“导出为excel”的按钮。我去,感情还得跟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 =
True ‘设置EXCEL可见


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编辑器,其中有一工程属性窗口,点击右键菜单的"插入模块",则增加一个"模块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的链接

时间: 2024-08-26 06:10:02

机房管理系统——VB与Excel的链接的相关文章

VB.NET版机房收费系统---导出Excel表格

datagridview,翻译成中文的意思是数据表格显示,使用DataGridView控件,可以显示和编辑来自不同类型的数据源的表格,将数据绑定到DataGridView控件非常简单和直观,大多数情况下,只需要设置DataSource属性即可,在绑定到包含多个列表或表的数据库源时,只需将DataMember属性设置为绑定的列表或表的字符串即可.机房收费系统多次用到数据表格的显示,并且导出为Excel表格,第一次机房收费系统是用VB版本的,她导出Excel的方法如下: 打开VB-工程-应用-勾选M

VB操作EXCEL文件大全

Private Sub writeToExcel(strTmp1() As String, colTmp1 As Collection) ' '    Dim tmp1 Dim i1 As Integer, intCol As Integer, intRow As Integer Dim xlApp As New Excel.Application Dim xlBook As New Excel.Workbook Dim xlSheet As New Excel.Worksheet Dim st

VB读写Excel

近期用excel和VB比較多,就简单的学习了一下VB中对Excel的处理.今天就介绍一些吧. 在VB中要想调用Excel,须要打开VB编程环境“project”菜单中的“引用”项目,并选取项目中的“Microsoft Excel 11.0 object library”项.因为你的Excel版本号不同,所以这个选项的版本号号也是不同的. 由于EXCEL是以层次结构组织对象的,其对象模型中含有很多不同的对象元素. 第一层:Application对象,即Excel本身: 第二层:workbooks对

VB.NET excel 列排序

VB.NET excel 按列排序 今天在VB.NET的项目中需要导出数据到EXCEL,并且还要对VB.NET EXCEL进行列的排序操作(sort),总结了下,把关键代码帖出来,备用下 Dim Xls As Excel.Application = New Excel.Application '定义excel应用程序 Dim Xlsbook As Excel.Workbook '定义工作簿 Dim Xlssheet As Excel.Worksheet '定义工作表 Xlsbook = Xls.

VB操作EXCEL文件

用VB操作Excel(VB6.0)(整理) 首先创建Excel对象,使用ComObj:Dim ExcelID as Excel.ApplicationSet ExcelID as new Excel.Application 1)显示当前窗口:ExcelID.Visible:=True2)更改Excel标题栏:ExcelID.Caption:='应用程序调用MicrosoftExcel'3)添加新工作簿:ExcelID.WorkBooks.Add4)打开已存在的工作簿:ExcelID.WorkBo

vb调用excel方法详解及操作相关操作命令大全

如果你要在VB中要想调用Excel,需要打开VB编程环境"工程"菜单中的"引用"项目,并选取项目中的"Microsoft Excel 11.0 object library"项.由于你的Excel版本不同,所以这个选项的版本号也是不同的. 因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素.    第一层:Application对象,即Excel本身:    第二层:workbooks对象集,指Excel的工作簿文件: 第三

C#/VB.NET Excel数据分列

有时候我们需要将保存在Excel单元格中的组合型数据拆分为多列(如将全名拆分为姓和名两列)以方便我们处理.记忆或保存.为了避免重复和大量的手动输入工作,Excel给我们提供了一个数据分列的功能.下面这幅图展示了如何在Excel中实现数据分列: 这篇文章将介绍如何使用C#和VB.NET编程的方式来实现Excel数据分列的功能. 步骤和代码: 第一步:创建一个新的Workbook类的对象,并加载Excel文档. Workbook book = new Workbook(); book.LoadFro

VBS 处理断开excel数据链接格式,只保留值

最近有个项目是将一个excel压缩之后发给客户,但是由于excel数据过大,即使压缩之后仍然接近5M,因为是大批量发送数据,所以非常慢.急需要将EXCEL数据压缩. 后来我想到一个办法,就excel数据公式去掉,只保留数值,发现文件小好多. excel 操作去掉数据链接如图所示. 然后我在网上搜索了好多方法,但是没有去掉 这个链接的做法, 后来先用excel 录制宏的方法, 最后找到用BreakLink方法来处理. 然后又搜索到VBA的此方法详解. 如下 将链接到其他 Microsoft Exc

VB导入Excel到数据前

1.选择Excel文件版本 2.选择Excel文件 3.遍历Excel工作表 4.选择Excel工作表进行预览,前几行,或全部有效数据,显示总数据条数. 5.选择标题列所在行 6.选择数据类型 7.选择新建数据表或现有表 8.选择Excel标题对应数据表的列 9.导入数据