机房收费系统之导出Excel表格

本文介绍了如何在多个窗体中复用导出Excel表的代码,通过将通用功能封装到公共模块中,从而简化了代码结构并提高了效率。详细解释了如何在U层添加公共模块,并在窗体代码中调用该模块,实现一键导出Excel表。

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

    这一次和第一次机房收费系统导出Excel表格没有什么区别,挺类似的。唯一不同的是第一次机房收费系统的时候,凡是有导出Excel表功能的窗体我都写上了一段导出Excel表的代码。这次我没有那么的“勤奋”啊!

    敲了两个带有导出Excel表的窗体以后,我发现这段代码是一模一样啊!下面请看导出Excel表的代码!

 Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click

        Dim myExcel As New Microsoft.Office.Interop.Excel.Application     '建立Excel连接

        myExcel.Application.Workbooks.Add(True)      '新建一个Excel文件
        myExcel.Visible = True                       '让Excel表可见
        Dim i, j, k As Integer     '定义变量

        For k = 0 To MyGridView.ColumnCount - 1             '添加表头, 因为Excel表从第一行第一列开始,而MyGridView从第0行第0列开始,所以需要加1
            myExcel.Cells(1, k + 1) = MyGridView.Columns(k).HeaderText
        Next

        For i = 0 To MyGridView.RowCount - 1                 '通过循环来添加控件中的数据到Excel表中
            For j = 0 To MyGridView.ColumnCount - 1
                '由于第一行是表头,所以添加数据从第二行开始。
                myExcel.Cells(i + 2, j + 1) = MyGridView(j, i).Value           '因为Excel表从第一行第一列开始,而MyGridView从第0行第0列开始,所以需要加1
            Next
        Next

    End Sub

    每次写的都是上面同一段代码!跟复制粘贴一样。

    所以我就想既然一样,那就封装起来。把它添加到公共模块里面直接调用,这就简单多了。所以我第二次的代码诞生了!

    先在U层添加一个公共模块,如图:

    

    在模块里面写这样一段代码:

 Public Function ExportExcel(ByVal dgv As DataGridView) As Boolean
        Dim myExcel As New Microsoft.Office.Interop.Excel.Application     '建立Excel连接

        myExcel.Application.Workbooks.Add(True)      '新建一个Excel文件
        myExcel.Visible = True                       '让Excel表可见
        Dim i, j, k As Integer     '定义变量

        For k = 0 To dgv.ColumnCount - 1             '添加表头, 因为Excel表从第一行第一列开始,而MyGridView从第0行第0列开始,所以需要加1
            myExcel.Cells(1, k + 1) = dgv.Columns(k).HeaderText
        Next

        For i = 0 To dgv.RowCount - 1                 '通过循环来添加控件中的数据到Excel表中
            For j = 0 To dgv.ColumnCount - 1
                '由于第一行是表头,所以添加数据从第二行开始。
                myExcel.Cells(i + 2, j + 1) = dgv(j, i).Value           '因为Excel表从第一行第一列开始,而MyGridView从第0行第0列开始,所以需要加1
            Next
        Next

        Return True
    End Function
    在U层的窗体代码中只调用一下就行了!代码如下:
Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click

        Call ExportExcel(MyGridView)          '调用模块中的ExportExcel()函数,来导出Excel表
  End Sub

    这样就简单多了。在别的窗体里面再用到,就直接调用,一句话搞定!

    虽然挺简单的,但是不想可能还是傻乎乎的复制,粘贴呢,我们编写程序的时候,遇到能够复制粘贴的代码,就代表代码冗余了,肯定会有简单的方法等着我们去发现!




评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值