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

    这一次和第一次机房收费系统导出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层添加一个公共模块,如图:

     机房收费系统之导出Excel表格_第1张图片

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

 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

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

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




你可能感兴趣的:(VB.NET)