.Net中DataGridview資料如何匯出到excel表

來源:互聯網
上載者:User

標籤: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,同時,系統也容易出現錯誤,不過,還是可以嘗試一下。

   小結:在做這一塊的時候,出現了很多問題,尤其是在用嵌套迴圈時,如果設定不對,常常出現匯出時丟失行,資料超出範圍,或者不按你想的方式匯出,總之 我出現了各種問題,通過查詢各種資訊,學長學姐的部落格,一個個解決掉了,解決後才發現,問題都是非常小的問題,卻又是非常不好找的問題,非常小的細節,而且是那些你認為不會出錯的地方。做事要細心,做程式更要細心,這篇部落格,即使寫給自己,也寫給大家,一句話:“做程式必須細心在細心。”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.