객실 요금 시스템 - VB에서 MSHFlexGrid 컨트롤의 데이터를 Excel로 내보내기

2110 단어 Excel
객실 요금 시스템에서 많은 조회 창은 같은 기능을 포함한다. 데이터베이스에서 조회한 데이터를 MSHFlexGrid 컨트롤에 표시한 다음에 MSHFlexGrid 컨트롤의 데이터를 Excel 표로 내보낸다.
이전에 학생 정보 관리 시스템을 만들었지만 이 기능과 관련이 없기 때문에 이를 기록하고 자신에게 기록하며 반성하고 모두에게 공유하고 학습한다.

메서드1: 루트 디렉토리에 미리 비어 있는 Excel 테이블을 만듭니다.


1. VB 프로젝트와 같은 루트에서 데이터를 가져올 Excel 테이블을 만듭니다.
2, VB 이벤트에 코드 쓰기:
Private Sub cmdExport_Click()

    Dim i As Integer

    Dim j As Integer

    myFlexGrid.Redraw = False    ' , 

     Set xlApp = CreateObject("Excel.Application")   ' EXCEL 

     ' EXCEL 

     Set xlBook = xlApp.Workbooks.Open(App.Path & "\ .xls")

    xlApp.Visible = True ' EXCEL 

     Set xlSheet = xlBook.Worksheets("Sheet1") ' 



     For i = 0 To myFlexGrid.Rows - 1 ' 

            For j = 0 To myFlexGrid.Cols - 1 ' 

                 myFlexGrid.Row = i

               myFlexGrid.Col = j

              ' EXCEL									              	     	  	     xlBook.Worksheets("Sheet1").Cells(i + 1, j + 1) = myFlexGrid.Text          					    	 Next j

    Next i

    myFlexGrid.Redraw = True

End Sub

 
메서드 2: VB에서 직접 참조하는 Microsoft Excel 14.0 Object Library
1. VB 디자이너에서 프로젝트 → 인용, Microsoft Excel 14.0 Object Library 인용;
2. 코드 작성:
Private Sub cmdExport_Click()

    Dim i As Integer

    Dim j As Integer

    Dim xlApp As Excel.Application

    Dim xlBook As Excel.Workbook

    Dim xlSheet As Excel.Worksheet

    Set xlApp = CreateObject("Excel.Application")   ' xlApp

    xlApp.Visible = True

    Set xlBook = xlApp.Workbooks.Add

    Set xlSheet = xlBook.Worksheets(1)

    For i = 0 To myFlexGrid.Rows - 1

        For j = 0 To myFlexGrid.Cols - 1

            myFlexGrid.Row = i

            myFlexGrid.Col = j

            xlSheet.Cells(i + 1, j + 1) = Trim(myFlexGrid.Text)

        Next

    Next

End Sub

      
첫 번째 방법은 Microsoft Excel 14.0 Object Library를 인용하지 않지만 루트 디렉터리에 해당하는 Excel 표를 만들어야 한다. 두 번째 방법은 표를 만들지 않고 Microsoft Excel 14.0 Object Library를 직접 인용하면 실례화할 수 있어 편리하다.

좋은 웹페이지 즐겨찾기