机房收费系统(四)-导出为Execel

本文介绍了使用VB.NET实现从MSHFlexGrid控件中导出数据到Excel的方法,包括直接操作Excel对象模型和通过函数封装导出逻辑两种方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机房有好多的导出Execel,刚看到这个还是蛮头疼的,以前没有做过,对于这种没做过的东西,首先是要站在巨人的肩膀上。

  • 1.首先需要引用下面这个东西

这里写图片描述

  • 2.打开浏览页面找到Excel所在的位置

这里写图片描述

  • 3.将数据从VB控件MSHFlexGrid中导出。
    Dim i As Integer  '声明一个行变量
    Dim j As Integer    '声明一个列变量

    Dim excelapp As Excel.Application
    Dim excelbook As Excel.Workbook
    Dim excelsheet As Excel.Worksheet   '声明一个Excel工作簿

    Set excelapp = New Excel.Application '建立一张表
    Set excelbook = excelapp.Workbooks.Add '添加新的工作簿
    Set excelsheet = excelbook.Worksheets(1) '建立工作表

    DoEvents        '转让控制权,以便让操作系统处理其他的事件

    With MSHFlexGrid1     '将msgflexgrid1中的内容写到表格中
        For i = 0 To .Rows - 1
            For j = 0 To .Cols - 1

                DoEvents
                excelapp.ActiveSheet.Cells(i + 1, j + 1) = .TextMatrix(i, j)  '注意Excel是从第一行第一列开始的,而窗体中的表是从第0行第1列开始的

            Next j
        Next i
    End With

        '保存路径
        excelapp.Visible = True
        Set excelapp = Nothing

**除了这个方法还有第二种方法
在模块中声明**

Public Function EduceExcel(ByVal fromname As Form, MSHFlexgrid As MSHFlexgrid)
 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 = xlbook.Worksheets(1)   '创建新的工作表单
       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

在窗体中调用

【总结】:两种方法都可以,第二种方法可以减少代码量,我比较喜欢第一种,因为现在还属于积累知识的阶段,多敲几遍肯定比敲一遍效果要好一些,所以还是多敲几遍锻炼一下与代码的亲和力吧!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值