机房收费系统——导出Excel

机房中有几个窗体用到了导出Excel这个功能,所以今天写一个博客总结一下这个知识点。
第一步,在引用中添加Excel,如图:
在这里插入图片描述
第二步,编辑代码(以收取金额查询为例)
1)问:考虑是否有查询结果,如果没有查询结果如何停止导出。
答:设置文本框提示“数据为空”,并中止进程
2)问:导出的过程中,怎样防止多次导出相同表。
答:导出成功后即清空数据,再次点击就会提示“数据为空”,中止进程。
3)具体代码展示如下:

    Dim i As Long, j As Long
    Dim CellsData() As String
    Dim objApp As Excel.Application
    Dim objWorkbook As Excel.Workbook
    Dim objWorksheet As Excel.Worksheet
    Dim objRange As Excel.Range
    
    '构造二维数组
    ReDim CellsData(1 To Me.MSFlexGrid1.Rows, 1 To Me.MSFlexGrid1.Cols)
    For i = 1 To Me.MSFlexGrid1.Rows
        For j = 1 To Me.MSFlexGrid1.Cols
            CellsData(i, j) = Me.MSFlexGrid1.TextMatrix(i - 1, j - 1)
        Next
    Next

    If MSFlexGrid1.Text = "" Then
        MsgBox "没有数据!", 0 + 48, "警告"
        Exit Sub
    Else
        '导出到Excel中
        Set objApp = New Excel.Application
        objApp.ScreenUpdating = False '禁止屏幕刷新
        Set objWorkbook = objApp.Workbooks.Add
        Set objWorksheet = objWorkbook.Sheets.Add
        Set objRange = objWorksheet.Range(objWorksheet.Cells(1, 1), objWorksheet.Cells(Me.MSFlexGrid1.Rows, Me.MSFlexGrid1.Cols))
        objRange.Value = CellsData
        objApp.Visible = True
        objApp.ScreenUpdating = True
        
        '销毁二维数据
        Erase CellsData
        
        Me.SetFocus
        MsgBox "导出成功!", 0 + 48, "提示"
        MSFlexGrid1.Clear
    End If

博文分享到这里,就可以实现Excel顺利导出了。

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值