본문 바로가기

Visual Std 2010

VS2010 엑셀데이터를 DataGridView로 로드하기 (Test)

소스는 아래와 같다.


Public Class Form1
 
    Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As 
System.EventArgsHandles Button1.Click
        Dim xlApp As Microsoft.Office.Interop.Excel.Application
        Dim xlWorkBook As Microsoft.Office.Interop.Excel.Workbook
        Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet
        Dim range As Microsoft.Office.Interop.Excel.Range
        Dim rCnt As Integer
        Dim cCnt As Integer
        Dim Obj As Object
 
        Dim strTxt As String = ""
 
        xlApp = New Microsoft.Office.Interop.Excel.Application
        xlWorkBook = xlApp.Workbooks.Open("c:\test12.xlsx")
        xlWorkSheet = xlWorkBook.Worksheets("Sheet1")
 
        range = xlWorkSheet.UsedRange
        DataGridView1.ColumnCount = range.Cells.Count / range.Rows.Count
        DataGridView1.RowCount = range.Rows.Count
        
        For rCnt = 1 To range.Rows.Count Step 1
            For cCnt = 1 To range.Columns.Count Step 1
                Obj = CType(range.Cells(rCnt, cCnt), Microsoft.Office.Interop.Exc
el.Range)
                strTxt = Obj.value
                DataGridView1.Item(cCnt - 1, rCnt - 1).Value = strTxt
            Next cCnt
        Next rCnt
        
        xlWorkBook.Close()
        xlApp.Quit()
 
        releaseObject(xlApp)
        releaseObject(xlWorkBook)
        releaseObject(xlWorkSheet)
    End Sub
 
    Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
        
    End Sub
 
End Class


디자인은 윈도우폼 위에 버튼과 데이터그리드뷰 하나씩 추가한다.

실행하면 아래와 같이 데이터가 출력된다.