(vb)机房收费系统之——调用excel 表格(引用)

在机房收费系统中,将vb中的数据导出到excel表格真的很重要,在这里遇到了各种各样的问题,下来和我一起来解决它吧!!

一、前期准备工作

在解决问题之前,我先声明一下,我的是office 2013,有些版本不一样,只会有一点点差别,只需要模仿就好!

1、点击工程——引用,去找到microsoft excel 15.0 object library,打上勾就好!

这里写图片描述

2、如果此时你的引用里没有microsoft excel 15.0 object library,那么这时候就需要点击浏览,找到你安装文件office的位置,找到位置后打开office 2013!

这里写图片描述

3、此时点击了office15,然后,点击文件类型,选择.exe,然后找到execel.exe,点击,然后点击打开.

这里写图片描述

4、此时就大公告成了

这里写图片描述

二、代码部分

这部分我还是有很多感想的,大家都知道机房收费系统中,有很多都需要导成excel表格的形式,什么是解决重复的代码最好的帮手呢?模块就是!在模块里我们定义一个函数,用来调用excel!会减少大量的代码,接下来大家一起和我来实现它吧!!

1、模块的代码部分!
Public Function EduceExcel(myGrid As MSFlexGrid)  '定义导出excel函数
    Dim xlapp As New excel.Application  '之所以用到new。是因为是引用类型,声明excel对象
    Dim xlbook As excel.Workbook   '声明工作簿对象
    Dim xlsheet As excel.Worksheet  '声明工作表单
    Dim i As Integer
    Dim j As Integer
    If myGrid.Text = "" Then
        MsgBox "没有记录可导出!", vbOKOnly + vbExclamation, "警告"
        Exit Function
    Else
       Set xlapp = CreateObject("excel.application")  '调用excel程序
       Set xlbook = xlapp.Workbooks.Add(1)            '创建新的空白簿
       Set xlsheet = excel.ActiveWorkbook.ActiveSheet '创建新的工作表单
       For i = 0 To myGrid.Rows - 1
       '填入数据
         For j = 0 To myGrid.Cols - 1
            xlsheet.Cells(i + 1, j + 1) = myGrid.TextMatrix(i, j)        'cell(a,b)表示a行,b列,这让写是因为vb中默认是从0开始的,而excel是从1开始的
         Next j
        Next i
        xlapp.Visible = True         '显示Excel表格
        Set xlapp = Nothing          '交还控制给Excel
    End If
End Function
2、窗体调用的代码!
   Call EduceExcel(MSFlexGrid1)

这一句即可,MSFlexGrid1就是你的当前窗体的msflexgrid控件的名称!

总结:我之前总结的模块的代码的知识,发挥了作用,利用好了模块,节省了大量的代码!!!

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值