对于DataGrid相信大家并不陌生,那DataGridView与他有什么关系呢?关系就是后者是前者的升级版,到了很多优化的功能。比如多种数据显示方式。它们共同的作用的作用是显示多条信息。这篇文章中我们将要解释的是如何将DataGridView中的数据导出到excel表格中。
一.先简单介绍一下DataGridView
DataGridView由两种基本的对象组成:单元格(cell)和组(band)。所有的单元格都继承自DataGridViewCell基类。两种类型的组(或称集合)DataGridViewColumn和DataGridViewRow都继承自DataGridViewBand 基类,表示一组结合在一起的单元格。需要注意的是DataGridView表示单元格的位置为(j,i), j:表示单元格所在列, i:表示单元格所在行。这与我们平常认知的表示单元格的表示方式不同,需要注意。
二.下面进入正题,导出到excel,代码如下
''' <summary>
''' 导出到excel
''' </summary>
''' <param name="DataGridName">数据表的名字</param>
''' <returns>string</returns>
''' <remarks>提示:成功</remarks>
Function ExportExcel(ByVal DataGridName As DataGridView) As String
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
xlBook = xlApp.Workbooks.Add()
xlSheet = xlBook.Worksheets("sheet1")
xlApp.Visible = True
'添加表头
Dim cols As Integer '表头的列数
For cols = 1 To DataGridName.Columns.Count '将相应列中的数据添加到相应的表格中
xlSheet.Cells(1, cols) = DataGridName.Columns(cols - 1).HeaderText
Next
'添加表中除了表头的数据
Dim i As Integer
Dim j As Integer
For i = 0 To DataGridName.Rows.Count - 1
For j = 0 To DataGridName.Columns.Count - 1
If DataGridName(j, i).Value Is System.DBNull.Value Then
xlSheet.Cells(i + 2, j + 1) = ""
Else
xlSheet.Cells(i + 2, j + 1) = DataGridName(j, i).Value
End If
Next j
Next i
Return "导出成功"
End Function
上面的代码定义了一个导出excel的方法,使用时,传递参数直接调用就可以了。代码如有不足,欢迎指正。