兩種方法DatagridView輕鬆匯入到Excel

來源:互聯網
上載者:User

標籤:datagridview

                眾所周知,DatagridView控制項來處理表各類資料真的是“簡單、方便、療效快”,因此備受廣大民眾喜愛。今天我們再來繼續探討一下有關它和Excel的“姊妹情深”。

          幾乎沒有人不對Excel不瞭解,但要說熟悉和認識透徹恐怕我們還遠遠沒有做到(這是題外之言),重點還是Excel的強大資料處理能力帶給我們的便利,所以把DatagridView資料表變為老少皆宜的Excel表格就顯得尤為重要了。

          其實這一轉換也很簡單,下面就為大家介紹下兩種方法,輕鬆串連“姊妹情”。

          方法一:

          這種方法不需要任何載入和引用,只是純程式碼,執行效率比較高。

          

 Public Function ExportExcel(ByVal gvw As DataGridView) As Boolean '匯出到Excel函數        Try            If gvw.Rows.Count <= 0 Then '判斷記錄數,如果沒有記錄就退出                MessageBox.Show("沒有記錄可以匯出", "沒有可以匯出的項目", MessageBoxButtons.OK, MessageBoxIcon.Information)                Return False            Else                        '如果有記錄就匯出到Excel                Dim objCreateExcel As Object                Dim objAddExcel As Object                objCreateExcel = CreateObject("Excel.Application") '建立Excel對象                objAddExcel = objCreateExcel.workbooks.add()                Dim intTitle As Integer                Dim intRow As Integer                Dim intColumn As Integer '定義迴圈變數,行列變數                '把表頭寫入Excel                For intTitle = 0 To gvw.Columns.Count - 1                    objAddExcel.worksheets(1).cells(1, intTitle + 1) = gvw.Columns(intTitle).HeaderCell.Value                Next                '用迴圈添加資料                For intRow = 0 To gvw.Rows.Count - 1 '行迴圈                    For intColumn = 0 To gvw.Columns.Count - 1 '列迴圈                        objAddExcel.worksheets(1).cells(intRow + 2, intColumn + 1) = gvw.Item(intColumn, intRow).Value.ToString                    Next                Next                objAddExcel.worksheets(1).Cells.EntireColumn.AutoFit() '自動調整Excel列                objCreateExcel.visible = True '設定Excel可見作為Excel工作表名稱                objAddExcel = Nothing '釋放資源                objCreateExcel = Nothing '釋放資源            End If            Return True        Catch ex As Exception '錯誤處理            MessageBox.Show(Err.Description.ToString, "錯誤", MessageBoxButtons.OK, MessageBoxIcon.Error) '出錯提示            Return False        End Try    End Function

            方法二:需要引用.NET FrameWork程式集下的Office,但代碼較少,具體如下:

            1、添加引用()

             


             然後選擇

             

            2、代碼

            

Imports Microsoft   ‘添加引用Module mdlText    Public Function ExportExcel(ByVal gvw As DataGridView) As Boolean '匯出到Excel函數        '建立Excel串連          Dim myExcel As New Microsoft.Office.Interop.Excel.Application()        myExcel.Application.Workbooks.Add(True)        myExcel.Visible = True        '定義迴圈變數,行列變數        Dim intRow As Integer        Dim intColumn As Integer        Dim intTitle As Integer        '添加表頭          For intTitle = 0 To gvw.ColumnCount - 1            myExcel.Cells(1, intTitle + 1) = gvw.Columns(intTitle).HeaderText        Next intTitle        '通過迴圈來添加控制項中的資料到表格中          For intRow = 0 To gvw.RowCount - 1            For intColumn = 0 To gvw.ColumnCount - 1                '由於第一行是表頭,所以添加資料時從第二行開始                myExcel.Cells(intRow + 2, intColumn + 1) = gvw(intColumn, intRow).Value.ToString            Next intColumn        Next intRow        Return True  '添加完畢,返回true      End Function 
EndModule
              

             雖然和第一次做收費系統相比簡單了很多,但這個功能由於存在著普遍性和良好的通用性,還是需要我們認真對待。如何做到最大化的方便使用者使用才是我們的最終目標。

            

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.