【机房系统知识小结点系列】之DataGridView控件导出为Excel
在机房收费系统中,DataGridView控件导出为Excel的功能经常出现,因此我把重复出现的一个功能统一放在了一个专属的“Configuration.vb”配置类中。
对于DataGridView控件导出为Excel的博文已经很多,精辟一些的代码如下:
Imports Microsoft.Office.Interop '添加引用ExcelImports System.Windows.Forms.DataGridViewPublic Class Configuration '配置 Public Sub ToExcel(ByVal enDgvw As DataGridView) '由DataGridView导出为Excel Dim myExcel As New Excel.Application '添加工作簿 myExcel.Application.Workbooks.Add() '添加表 myExcel.Visible = True '打开表 Dim cols As Integer For cols = 1 To enDgvw.ColumnCount '获取gdvwRechargeLog标题行赋值给Excel myExcel.Cells(1, cols) = enDgvw.Columns(cols - 1).HeaderText 'gdvwRechargeLog从第一行的第0位开始,至cols-1终止 Next Dim i As Integer Dim j As Integer For i = 0 To enDgvw.RowCount - 1 '内循环:列循 For j = 0 To enDgvw.ColumnCount - 1 '外循环,行循环 If enDgvw(j, i) Is System.DBNull.Value Then '(列,行)DBNull为不存在的值,当数据库表中某一个字段不包含任何数据时,则显示 myExcel.Cells(i + 2, j + 1) = "" Else myExcel.Cells(i + 2, j + 1) = enDgvw(j, i).Value 'DataGridView(列,行),Excel(行,列) End If Next Next End Sub
在这里我强调的一点是,这句话你真的理解了吗?
答案解析:DataGridView表示单元格的位置为(j,i), j:表示单元格所在列,i:表示单元格所在行。这与我们平常认知的表示单元格的表示方式不同。
总结:囫囵吞枣固然是一种学习的方式!但是,知其然还要知其所以然,才能对知识了然于胸。否则,也只是提笔忘字,对学习的只是有种不踏实的感觉。