在VB 中怎么把数据导到EXCEL里面去

解决方案 »

  1.   

    '存字段长度值
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
        Dim xlSheet As Excel.Worksheet    Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
        Set xlSheet = xlBook.Worksheets(1)    With Rs_Dzgl_Receipt
            If .RecordCount < 1 Then
                MsgBox ("没有记录!")
                Exit Sub
            End If
            xlSheet.Cells(1, 4).Value = .Fields("bt")
            xlSheet.Cells(2, 1).Value = .Fields("invoice")
            xlSheet.Cells(2, 9).Value = .Fields("packdate")
            xlSheet.Cells(3, 1).Value = .Fields("")
                            
            '合并单元格
            Dim nIcol As Integer
            
            xlSheet.Range(xlSheet.Cells(3, 1), xlSheet.Cells(5, 9)).Select
                With xlApp.Selection
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .ShrinkToFit = False
                   .MergeCells = True
                End With
                
            xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(1, 9)).Select
                With xlApp.Selection
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                    .WrapText = False
                    .Orientation = 0
                    .AddIndent = False
                    .ShrinkToFit = False
                   .MergeCells = True
                End With
            '网格线
            With xlSheet
                .Range(.Cells(1, 1), .Cells(1, 9)).Font.Name = "黑体"
                '设标题为黑体字
                .Range(.Cells(1, 1), .Cells(1, 9)).Font.Bold = True
                '标题字体加粗
                .Range(.Cells(1, 1), .Cells(1, 9)).Borders.LineStyle = xlContinuous
                '设表格边框样式
            End With
            
            '显示表格
            Dim ExclFileName As String
            ExclFileName = App.Path & "\箱单" & Text1(1).Text & ".xls"
            If Dir(ExclFileName) <> "" Then
                Kill ExclFileName
            End If
            xlSheet.SaveAs (ExclFileName)
            xlApp.Application.Visible = True
            '交还控制给Excel
            xlSheet.PrintPreview
           ' xlApp.Application.Quit
           ' xlApp.Quit
        End With
      

  2.   

    在很多 VB 的资料库书籍中,都会很完整的提到:如何由其他种类的文件中将资料导入资料库,但是却很少有书提到:如何将资料库中的资料,导出到各种不同的文件类型的文件中,连 VB 的 Help 中也是这样!或许是大家都认为资料库主题的重点是在资料库本身吧!但是,在实际的资料库程序运用中,却常常需要将资料库导出到各种不同的文件类型的文件中,这些文件可能是 DBase文件、文字文件 (.Txt)、Excel 文件、Html 文件、Access 文件或其他类型的资料库文件 (ODBC)...等。在本专题中,考虑到并不是每一个人都有 Oracle 或 SQL Server 的环境,为了让大家都能够实作,我们将以 Access 资料库来作练习,而练习的文件也使用 VB 本身提供的 Biblio.mdb (位于各版本 VB 的目录下)。预计要练习导出的文件类型有五种:DBase文件、文字文件 (.Txt)、Html 文件、Excel 文件、Access 文件。除了这五种之外,下面的语法可以将资料库之资料导出到任一种 VB 支援的资料库或文件中。在练习之前,要将导出文件的 SQL 语法先说明一下:SELECT Table.Fields INTO [dbms type;DATABASE=path].[unqualified filename] FROM [Table or Tables]SELECT Table.Fields INTO [资料库种类;DATABASE=资料库路径].[资料库文件名称] FROM [Table or Tables]至于【资料库种类】及【资料库路径】,视资料库或文件类型之不同而异,详见【注一】。如果上面说的都清楚了,那我们要开始这一个练习了!在 Form 上放置一个 CommandButton,在【专案】【设定引用项目】中加入 Microsoft DAO 3.51 Object Library,我们将使用 Biblio.mdb 的 authors Table,在 Command1_Click 中加入以下程序码:Dim db As DatabaseSet db = Workspaces(0).OpenDatabase(App.Path & "\biblio.mdb")'db.execute "SELECT Table.Fields INTO [dbms type;DATABASE=path].[unqualified filename] FROM [Table or Tables]"在以上程序中,db.execute 指令行之指令依资料库或文件的种类说明如下:一、DBase文件SQL 语法:SELECT * INTO [dBase III;DATABASE=资料库路径].[dbase文件名称] FROM [authors]db.Execute "SELECT * INTO [dBase III;DATABASE=C:\test].[authors.DBF] FROM [authors]"注意事项:1、authors.DBF 事先不可存在,否则会产生错误!2、若您没有 Dbase,您可以使用 Access 来连结这个 Table,以便观察结果!二、文本文件 (.Txt)SQL 语法:SELECT * INTO [Text;DATABASE=文本文件路径].[文本文件名称] FROM [authors]db.Execute "SELECT * INTO [Text;DATABASE=C:\test].[authors.TXT] FROM [authors]"注意事项:1、authors.TXT 事先不可存在,否则会产生错误!2、此动作会产生的文件有二个,第一个就是文本文件 authors.TXT,第二个是 Schema.ini。3、文本文件之格式为 CSV 之文件格式,即各栏位间以逗点分开,实际呈现方式如下:  "Au_ID","Author","Year Born"  1,"Jacobs, Russell",1950  2,"Metzger, Philip W.",19424、Schema.ini 若事先不存在会新产生一个,若已存在,则会在原文件后面直接 Append。5、至于 Schema.ini 的属性为此次导出的相关资讯,格式同一般的 Ini 文件,详细属性如下:  [authors.TXT]  ColNameHeader=True  CharacterSet=OEM  Format=CSVDelimited  Col1=Au_ID Integer  Col2=Author Char Width 50  Col3="Year Born" Short三、Html 文件SQL 语法:SELECT * INTO [Excel 8.0;DATABASE=Html文件路径].[Html文件名称] FROM [authors]db.Execute "SELECT * INTO [HTML Export;DATABASE=C:\test].[authors.HTM] FROM [authors]"注意事项:1、authors.HTM 事先不可存在,否则会产生错误!2、此动作会产生的文件有二个,第一个就是文本文件 authors.HTM,第二个是 Schema.ini。3、Schema.ini 若事先不存在会新产生一个,若已存在,则会在原文件后面直接 Append。4、至于 Schema.ini 的属性为此次导出的相关资讯,格式同一般的 Ini 文件,详细属性如下:  [authors.HTM]  ColNameHeader=True  CharacterSet=ANSI  Format=HTML  Col1=Au_ID Integer  Col2=Author Char Width 50  Col3="Year Born" Short四、Excel 文件SQL 语法:SELECT * INTO [Excel 8.0;DATABASE=文件路径+文件名].[工作表名称] FROM [authors]db.Execute "SELECT * INTO [Excel 8.0;DATABASE=C:\test\authors.XLS].[authors] FROM [authors]"注意事项:1、authors.XLS 可事先存在,也可以不存在,会自动产生一个。2、工作表 authors 事先不可存在,否则会产生错误!五、Access 文件SQL 语法:SELECT * INTO [新资料库路径+文件名][新资料表名称] FROM [authors]'导出到同一资料库 ( 新 Table 为 authors1 )'新 Table authors1 事先不可存在,否则会产生错误!db.Execute "SELECT * INTO [authors1] FROM [authors]"'导出到不同的资料库 ( 新资料库为 db1,新 Table 为 authors )'新资料库 db1事先必须存在,否则会产生错误!'但是其中新 Table authors 事先不可存在,否则会产生错误!db.Execute "SELECT * INTO [C:\test\db1.mdb].[authors] FROM [authors]"