vb에서 MSHFlexGrid 컨트롤을 Excel로 내보내기

vb 프로그램에서 컨트롤 MSHFlexGrid 데이터를 EXCEL 테이블로 내보내 데이터베이스 조회를 위한 백업을 실현합니다.
모듈에 함수 함수 정의 및 링크 만들기
우선, 함수 정의와 링크
'MSHFlexGrid     Excel
Public Function ExportFlexDataToExcel(flex As MSHFlexGrid, g_CommonDialog As CommonDialog)
  
    On Error GoTo ErrHandler
    '  excel     
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    
    Dim Rows As Integer, Cols As Integer
    Dim iRow As Integer, hCol As Integer, iCol As Integer
    Dim New_Col As Boolean
    Dim New_Column     As Boolean
            
    g_CommonDialog.CancelError = True
    On Error GoTo ErrHandler
    '     
    g_CommonDialog.Flags = cdlOFNHideReadOnly
    '      
    g_CommonDialog.Filter = "All Files (*.*)|*.*|Excel Files" & _
    "(*.xls)|*.xls|Batch Files (*.bat)|*.bat"
    '         
    g_CommonDialog.FilterIndex = 2
    '   “  ”   
    g_CommonDialog.ShowSave
            
    If flex.Rows <= 1 Then    '         
        MsgBox "    !", vbInformation, "  "
        Exit Function
    End If
                    
    Set xlApp = CreateObject("Excel.Application") '  excel    
    Set xlBook = xlApp.Workbooks.Add '     
    xlApp.Visible = True

    With flex    '  MSHFlexGrid   excel       
        Rows = .Rows
        Cols = .Cols
        iRow = 0
        iCol = 1
        For hCol = 0 To Cols - 1
            For iRow = 1 To Rows
                xlApp.Cells(iRow, iCol).Value = .TextMatrix(iRow - 1, hCol)
            Next iRow
            iCol = iCol + 1
        Next hCol
    End With

그 다음에 함수에 excel의 개성화된 설정을 설정합니다
4
 With xlApp         '  excel  
        .Rows(1).Font.Bold = True
        .Cells.Select
        .Columns.AutoFit
        .Cells(1, 1).Select
'        .Application.Visible = True
    End With
    
    xlBook.SaveAs (g_CommonDialog.FileName) '  excel 
    xlApp.Application.Visible = True
    xlApp.DisplayAlerts = True
그리고 excel 프로그램과 함수의 오류 처리
 'xlApp.Quit
    Set xlApp = Nothing  '"     Excel  excel  
    Set xlBook = Nothing
    flex.SetFocus
    MsgBox "       Excel 。", vbInformation, "  "
    Exit Function
                
ErrHandler:
    '     “  ”  
    If Err.Number <> 32755 Then
        MsgBox "      !", vbCritical, "  "
    End If
End Function

창에서 함수 호출
Private Sub cmdToExcel_Click()
ExportFlexDataToExcel myflexgrid, cdlSelectExcel  'myflexgrid1 MSHFlexGrid     cdlSelectExcel commonDialog   
End Sub

좋은 웹페이지 즐겨찾기