標籤:datagridview style 使用 os 資料 io
首先,這個問題在網上有很多答案,也有很多解決的方法。其次,很多人寫過類似的部落格 。我的這篇部落格,主要是寫給那些剛剛接觸或接觸不久.NET並使用其做程式的人,更是寫個自己,記錄一下方法,方便以後使用。
在表單中添加一個DataGridView控制項,DatagridView獲得資料: DataGridView1.DataSource = crList(泛型)或DataGridView1.DataSource=DataSet.Table(0)。{注意:通過查詢資料庫,將查詢到的資料放入crList或Dataset中,然後賦值給DataGridView)
若想匯出資料到Excel表,需要添加引用(項目-添加引用-Microsoft.Office.Interop.Excel).
剩下的就是代碼了。下面是My Code,僅供參考。(把匯出Excel表做成了一個類,這樣整個程式都可以直接調用這個類,實現匯出資料到Excel表)
<span style="font-size:18px;"> '開啟Excel的應用程式 Dim ExcelADD As New Excel.Application() '添加一個工作本 Dim ExcelWordBook As Excel.Workbook = <span style="font-size:18px;">ExcelADD</span>.Workbooks.Add() '添加一個表 Dim ExcelWorkSheet As Excel.Worksheet = <span style="font-size:18px;">ExcelWordBook</span>.Sheets("sheet1") '顯示Excel <span style="font-size:18px;">ExcelADD</span>.Visible = True '用於將DataGridView中的表賦值到Excel中的表中 Dim i As Integer Dim j As Integer '將DataGridView中的欄位名賦值給Excel表中的第一行 Dim Cols As Integer For Cols = 1 To x.Columns.Count xlWorkSheet.Cells(1, Cols) = x.Columns(Cols - 1).HeaderText Next '將DataGridView表格中的內容匯入到Excel表中 For i = 0 To x.RowCount - 1 'DataGrideView中的表頭行不作為行數來計算 For j = 0 To x.ColumnCount - 1 'Excel的第一行是標題,所以應從第二行開始,i+2 注意DataGridView的座標是先列後行 xlWorkSheet.Cells(i + 2, j + 1) = x(j, i).Value.ToString() Next Next</span>
注意:DataGridView的屬性裡有一個AllowUsersToAddRows屬性,要設定成False,否則For i = 0 To x.RowCount - 1要改寫成For i = 0 To x.RowCount - 2,同時,系統也容易出現錯誤,不過,還是可以嘗試一下。
小結:在做這一塊的時候,出現了很多問題,尤其是在用嵌套迴圈時,如果設定不對,常常出現匯出時丟失行,資料超出範圍,或者不按你想的方式匯出,總之 我出現了各種問題,通過查詢各種資訊,學長學姐的部落格,一個個解決掉了,解決後才發現,問題都是非常小的問題,卻又是非常不好找的問題,非常小的細節,而且是那些你認為不會出錯的地方。做事要細心,做程式更要細心,這篇部落格,即使寫給自己,也寫給大家,一句話:“做程式必須細心在細心。”