datagridview,翻譯成中文的意思是數據表格顯示,使用DataGridView控件,可以顯示和編輯來自不同類型的數據源的表格,將數據綁定到DataGridView控件非常簡單和直觀,大多數情況下,只需要設置DataSource屬性即可,在綁定到包含多個列表或表的數據庫源時,只需將DataMember屬性設置為綁定的列表或表的字符串即可。機房收費系統多次用到數據表格的顯示,並且導出為Excel表格,第一次機房收費系統是用VB版本的,她導出Excel的方法如下:
打開VB-工程-應用-勾選Microsoft Excel 14.0 Objexts 2.6 Library

代碼如下:
<span style="font-size:18px;">Private Sub CmdExport_Click()
Dim j As Integer
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Set xlApp = CreateObject("Excel.Application") '實例化對象xlApp
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
For i = 0 To myflexgrid.Rows - 1
For j = 0 To myflexgrid.Cols - 1
myflexgrid.Row = i
myflexgrid.Col = j
xlSheet.Cells(i + 1, j + 1) = Trim(myflexgrid.Text)
Next
Next
End Sub </span>
第二版機房收費系統VB.NET版本,她又怎麼樣導出Exce表格nie,跟VB版的導出Excel表格的方法有哪些異曲同工之妙,又有著VB不具備的妙處呢?下面一一介紹:
首先,我們需要引用

還有一個細節問題,我們需要把AllowUserToAddRow這個屬性改為False,後面詳解True和False的區別:

編程代碼如下:
<span style="font-size:18px;">Public Function dirivExcel(ByVal dgv As DataGridView) As Boolean
Dim myExcel As New Microsoft.Office.Interop.Excel.Application '建立Excel連接
myExcel.Application.Workbooks.Add(True)
myExcel.Visible = True
Dim i, j, k As Integer '定義變量
For k = 0 To dgv.ColumnCount - 1 '添加表頭
myExcel.Cells(1, k + 1) = dgv.Columns(k).HeaderText
Next k
For i = 0 To dgv.RowCount - 1 '通過循環來添加控件中的數據到表格中
For j = 0 To dgv.ColumnCount - 1
'由於第一行是表頭,所以添加數據時就從第二行開始添加
myExcel.Cells(i + 2, j + 1) = dgv(j, i).Value
Next
Next
Return True '添加完畢,返回true
End Function</span>
現在我們來看一下運行結果:

AllowUserToAddRow這個屬性改為True的時候出現如下錯誤:

因為單元格的value是空的,對一個控制進行.ToString()操作時,就會出現System.NullReferenceException異常。對此我將toString去掉,就不報錯了,另外你可以對value先進行是否為空進行判斷如果不為空,在進行Tostring()操作,上述是在修改代碼的基礎上來解決了這個問題,另外對於控件本身也有一個屬性控制,是否自動添加空白行。VB.NET版機房收費系統,未完,待續......
作者:csdn博客 丁國華