在敲機房收費系統的時候,顯示資料的時候需要將DateGridew 中的資料匯出進Excel表。DateGridew匯出Excel表是比較常見的,當然匯出Excel表有很多種方法,下面是個人認為比較容易理解的一種方法:
1.添加引用:項目—>添加引用—>Microsoft
.Office.Interop.Excel
常見錯誤:Application”在命名空間“Microsoft.Office.Interop.Excel”中不明確。
注意:這是由於不同版本之間發生了衝突引起的。例如,我在引用Microsoft Excel15.0 Object Libirary 之後又引用Microsoft.office.Interop.Excel 就會出現上面的錯誤。
2.編寫代碼:
Private Sub butnExport_Click(sender As Object, e As EventArgs) Handles butnExport.Click '用到Application,需要不跟其他的Excel表格衝突 Dim MyExcel As New Microsoft.Office.Interop.Excel.Application '添加活頁簿 MyExcel.Application.Workbooks.Add(True) '表格可見 MyExcel.Visible = True '添加控制項的列數到表格當中 Dim cols As Integer For cols = 0 To DataGridView.ColumnCount - 1 MyExcel.Cells(1, cols + 1) = Me.DataGridView.Columns(cols).HeaderText '添加欄位標題 Next cols '設定行和列 Dim i As Integer Try For i = 0 To DataGridView.RowCount - 1 '行的變化範圍 Dim j As Integer For j = 0 To DataGridView.ColumnCount - 1 '列的變化範圍 'DateGridew的資料匯出到Excel中 If Me.DataGridView(j, i).Value Is System.DBNull.Value Then '無資料為空白表 MyExcel.Cells(i + 2, j + 1) = "" Else '將DateGridew的資料添加到Excel表中 MyExcel.Cells(i + 2, j + 1) = DataGridView(j, i).Value.ToString End If Next j Next i MsgBox("資料匯出成功!") '提示 Catch ex As Exception MsgBox(ex.Message, "匯出資料") '彈出捕獲的訊息 Exit Sub End Try End Sub
常見錯誤:“未將對象引用設定到對象的執行個體”
注意:在DateGridew中有一個屬性AllowUserToAddRows,要設定成False,否則會出現上面的錯誤,當然如果設定成True,則將For
i = 0 To DataGridView.RowCount - 1改成 For i = 0 To DataGridView.RowCount - 2即可!