你可以把datagrid中的数据导入到excel里去,然后调用excel的打包功能啊,我就是这样做的.

解决方案 »

  1.   

    To: freehorse_1981() 
        我不知道怎样才能将数据导入到EXCEL中去,能不能请你详细的告诉我一下!!!万份感激…
      

  2.   

    给你一段代码把你生在记录集导入到Excel中去
      

  3.   

    导入到Excel,就是调用Excel的OLE Automation接口。
    再你的工程中引入Microsoft excel object library 9.0(execl 2000)。然后下面是一段样例代码,剩下的就自己研究一下吧,很容易的。dim ExcelApp As excel.Application
    If ExcelApp Is Nothing Then
            Set ExcelApp = CreateObject("Excel.Application")
    End IfWith ExcelApp
       .Visible = False
       .Workbooks.Add
       
      
       ....                      ‘处理代码,写数据   .visible=true
    end with
      

  4.   

    关于用水晶报表打印的问题,如果用的是8.0以上。我的经验如下:
    1 8.0以上水晶报表在开发的时候,建议按照ado的模式作,千万不要按表或视图等方式,ado的模式设计出来的报表以后再编程上留有余地更大。
    2 采用8.0以上水晶报表的程序在部署上,安装比较麻烦,需要为每台客户端装一次crystal report 8.0,否则,会遇到physical database error的错误。光用vb package工具作出来的安装包,并不能很好地让报表跑起来。
    3 如果是简单的报表,不如用vb6的data report来做。
      

  5.   

    可以试试 VSFLEXGRID,7.0开始支持网格数据的直接打印,而且功能比 DATAGRID 丰富。
      

  6.   

    此乃转贴!先添加“部件”Microsoft Excel 9.0 Object Library只要装了Excel就有它
    Private Sub ExporToExcel(Flex As vsFlexArray)      '导出至Excel,你这里要用Flex as DataGrid,因为你用的是DataGrid控件.
        Dim s As String
        Dim i As Integer
        Dim j As Integer
        Dim k As Integer
        On Error GoTo Ert
        Dim Excelapp As Excel.Application
        Set Excelapp = New Excel.Application
        On Error Resume Next
        DoEvents
        Excelapp.SheetsInNewWorkbook = 1
        Excelapp.Workbooks.Add
        Excelapp.ActiveSheet.Cells(1, 1) = s
    '    Excelapp.Range("C1").Select
    '    Excel.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Name = "黑体
        Excelapp.Range("A1", "Z1").Select
        Excelapp.Range("A1", "Z1").Font.Name = "黑体"
        Excelapp.Selection.Font.FontStyle = "Bold"
        Excelapp.Selection.Font.Size = 16
        With Flex
            k = .Rows
            For i = 0 To k - 1
                For j = 0 To .cols - 1
                   DoEvents
                   Excelapp.ActiveSheet.Cells(1 + i, j + 1) = "'" & .TextMatrix(i, j)
                Next j
            Next i
        End With
        Excelapp.Visible = True
        Exit Sub
    Ert:
        If Not (Excelapp Is Nothing) Then
            Excelapp.Quit
        End If
    End Sub