根据面向对象封装的特性,这里我们就可以把导出Excel表的过程封装成一个方法,然后需要这个功能的时候只需要调用这个方法就可以了,是不是so easy 呀!
封装的模块
Imports Microsoft.Office.Interop
Imports System.Windows.Forms
Module ImportExcel
Public Function ImportExcel(ByRef dgvw As DataGridView) As Boolean
'建立Excel连接
Dim myExcel As New Microsoft.Office.Interop.Excel.Application()
myExcel.Application.Workbooks.Add(True)
myExcel.Visible = True
'定义循环变量,行列变量
Dim intRow As Integer
Dim intColumn As Integer
Dim intTitle As Integer
'添加表头
For intTitle = 0 To dgvw.ColumnCount - 1
myExcel.Cells(1, intTitle + 1) = dgvw.Columns(intTitle).HeaderText
Next intTitle
'通过循环来添加控件中的数据到表格中
For intRow = 0 To dgvw.RowCount - 1
For intColumn = 0 To dgvw.ColumnCount - 1
myExcel.Cells(intRow + 2, intColumn + 1) = dgvw(intColumn, intRow).Value.ToString
Next intColumn
Next intRow
Return True
End Function
End Module
我们运用时调用:
Private Sub btnExcel_Click(sender As Object, e As EventArgs) Handles btnExcel.Click
Call ImportExcel.ImportExcel(DataGridView1)
End Sub
不讲究是发现的源动力,我们觉得重复的写一些代码很麻烦,那么我就应该想办法解决这个问题,把我们平时所学到的知识应用到实践中去,不要将理论和实践孤立开,这样不利于我们对知识的理解和掌握。