vb中怎样把已在Datagrid中数据导入EXCELL中?谢谢

解决方案 »

  1.   

    DataGrid是用一个数据集关联的 把这个数据集传递给这个函数就行
    Public Sub exportExcel(ByRef rs As ADODB.Recordset)
        Dim myexcel As New Excel.Application
        Dim mybook As New Excel.Workbook
        Dim mysheet As New Excel.Worksheet
        Dim vbook As Variant
        
        Set mybook = myexcel.Workbooks.Add '添加一个新的BOOK
        'Set mysheet = mybook.Worksheets.Add '添加一个新的SHEET,如不想添加一个新工作表,你可以把worksheets.add改在worksheets(1),也可以把1改成2、3,意思是工作表2、3
        Set mysheet = mybook.Worksheets(1)
        myexcel.Visible = True
        
        If Not rs Is Nothing Then
            If rs.RecordCount > 0 Then
                '继续执行
            Else
                MsgBox "没有数据", 0 + 64 + 65536, "导出到Excell"
                Exit Sub
            End If
        Else
            MsgBox "没有数据", 0 + 64 + 65536, "导出到Excell"
            Exit Sub
        End If
        
        On Error GoTo err02
        vbook = rs.Book '记录当前数据集位置
        rs.MoveFirst
        'mysheet.Cells.CopyFROMRecordset rs
        For i = 0 To rs.Fields.Count - 1
                    mysheet.Range(Chr(65 + i) & "1").Value = rs.Fields(i).Name
                    mysheet.Range(Chr(65 + i) & "1").Interior.ColorIndex = 34
                    mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeTop).LineStyle = xlContinuous
                    mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeBottom).LineStyle = xlContinuous
                    mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeRight).LineStyle = xlContinuous
                    mysheet.Range(Chr(65 + i) & "1").Borders(xlEdgeLeft).LineStyle = xlContinuous
        Next i
        
        DoEvents
        mysheet.Range("A2").CopyFromRecordset rs
        
        rs.MoveFirst
    err02:
        Exit Sub
    End Sub
      

  2.   

    其实就是一个函数
    mysheet.Range("A2").CopyFromRecordset rs
    我写的这些代码主要是完善Excell