多个窗体都需要这个功能,所以在U层添加一个类模块,写入一下代码
Imports Microsoft.Office.Interop Imports System.Windows.Forms Imports System.Windows.Forms.KeyEventArgs Module PublicModule ''' <summary> ''' 导出Excel表格 ''' </summary> ''' <param name="frmName"></param> ''' <param name="dgv"></param> ''' <returns></returns> ''' <remarks></remarks> Public Function ExportExcel(ByVal frmName As Form,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 myExcel.Cells.EntireColumn.AutoFit() Return True End Function