搜过以前有关的内容,都不太懂,希望能给个简单明了的(有详细程序)。需要用的控件名称给提示一下。先谢谢~~!

解决方案 »

  1.   

    private Sub GridTOexcel(mGrid As DataGrid)
        Dim ColCount, i, k As Integer
        Dim xlApp As New Excel.Application, xlBook As Excel.Workbook
        Dim xlsheet As Excel.Worksheet, sRange As String
        
        ColCount = mGrid.Columns.Count
        
        xlApp.Visible = False    Set xlBook = xlApp.Workbooks.Add
        Set xlsheet = xlBook.Worksheets(3)
        xlsheet.Visible = xlSheetHidden
        Set xlsheet = xlBook.Worksheets(2)
        xlsheet.Visible = xlSheetHidden      '//隐藏sheet2
        Set xlsheet = xlBook.Worksheets(1)
        xlsheet.Name = "导出数据"
        VB.Screen.MousePointer = vbHourglass
        xlsheet.Range(xlsheet.Cells(1, 1), xlsheet.Cells(1, ColCount)).Merge
        xlsheet.Range(xlsheet.Cells(2, 1), xlsheet.Cells(2, ColCount)).Font.Size = 10
        
        '//设置标题    For i = 0 To ColCount - 1
            xlsheet.Columns(i + 1).ColumnWidth = mGrid.Columns(i).Width / 120
            If mGrid.Columns(i).Visible = True Then
                xlsheet.Cells(2, i + 1) = mGrid.Columns(i).Caption
            End If
        Next
                    
        mGrid.MoveFirst
        i = 0
    '//从网格到excel
        While Not mGrid.EOF
            xlsheet.Range(xlsheet.Cells(i + 3, 1), xlsheet.Cells(i + 3, ColCount)).Font.Size = 10
            For k = 0 To ColCount - 1
                If Not IsNull(mGrid.Columns(k).Value) Then
                    If mGrid.Columns(k).Visible = True Then
                        xlsheet.Cells(i + 3, k + 1) = CStr(mGrid.Columns(k).Value)
                    End If
                End If
            Next
            mGrid.MoveNext
            i = i + 1
        Wend
        
    '//关闭操作台
       xlBook.SaveAs "D:\kk.xls"
        xlBook.Close False
        xlApp.Quit
        Set xlApp = Nothing
        VB.Screen.MousePointer = vbDefault
        Msgbox "数据导出完毕!"
    End Sub