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博客 丁國華