搜索一下吧,CSDN里有一堆这方面的贴子

解决方案 »

  1.   

    不知道你是什么数据库的数据要导出,
    不过dbms都应该提供数据导出功能,
    以MSSQL SERVER为例:
    执行数据导出的时候,在[选择目的]的那一步里,
    在下拉框里选择Microsofr Excel-Treiber(*.xls)那一项
    即可。如果你的机器里还没有Excel的数据源,还要继续配置,
    然后,ok!
      

  2.   

    请问 morningleaf(何田田) :在oracle里能不能直接将选取的数据导出至excel表。
      

  3.   

    xls文件就是逗号分开的数据项,随便你怎么倒
      

  4.   

    把资料输往Excel来列印●这是一个与VBA无关的技术,但因为这是对Excel来控制,因此收录在Office VBA单元里,并解决一些寄信来问这个问题网友的疑惑。
    ●这个表单将是等一下要把资料丢给Excel列印的主角,上面有一个Text1,每一栏资料都以 , 逗号来做间格,而每一笔资料间则以vbCrlf来做间隔(按Enter键啦~~),而Command1负责把资料丢给Excel并负责所有动作。 
    ●如果你的电脑有安装Excel,可以在引用项目里找到Excel OLE Object Library,只不过大家的版本会不太一样,小瓜瓜比较穷,所以还在用Excel200。 
    ●开始实作: (一般) 
    Dim MyXlsApp As Excel.Application 
    '设MyXlsApp为Excel的Application物件之表单的全域变数 
    Private Sub Command1_Click() 
    Dim RowData As Variant '用来拆解Text1内的每一行资料 
    Dim ColData As Variant '用来拆解Text1内的每一栏资料 
    Dim RowTmpDat As Variant 'For each行资料暂存 
    Dim ColTmpDat As Variant 'For each栏资料暂存 
    Dim R As Long 
    Dim C As Long 
    R与C是用来记录待会在Sheet上移动后的Row与Column位置Set MyXlsApp = CreateObject("Excel.Application") 
    '建立Excel.Application物件 
    MyXlsApp.Visible = True 
    MyXlsApp.Workbooks.Add 
    '新增Wookbooks(Sheets与一些其它物件的集合)RowData = Split(Text1.Text, vbCrLf) 
    '依跳行字元把Text1.Text拆成一行行的资料 
    R = 0 
    For Each RowTmpDat In RowData 
    '再从被拆成一行行的资料各别把栏位里的资料提出来 
    ColData = Split(RowTmpDat, ",") 
    R = R + 1 
    C = 64 
    For Each ColTmpDat In ColData 
    C = C + 1 'Chr(65) = A, Chr(66) = B, Chr(67) = C, ...... 
    MyXlsApp.Range(Chr(C) & R).Select 
    '移到第C栏第R行 
    MyXlsApp.ActiveCell.Value = ColTmpDat 
    '把拆得的每一栏资料填到Excel的Cell里 
    Next 
    Next 
    MyXlsApp.Worksheets.PrintPreview 
    '启动预览列印 
    MyXlsApp.DisplayAlerts = False 
    '不提示储存 
    MyXlsApp.Quit 
    '硬是把Excel给关闭 
    End Sub
    ●执行 ●把资料一笔一笔(按Enter来区隔)输入,比把每一笔资料一栏一栏的以英文字的逗号来分隔,然后按下Command1。 
    ●喔!资料被一个一个输往相对应的Cell,帅喔!!。 
    ●资料输完后,预览列印就跑出来了,赶快预览看看,并执行列印~赞赞赞~~。 
    ●列印完后,Excel就自动的被关闭了,嗯,太棒了,赶快去试试吧!
    ●这样的写法有个致命的缺点──它只能输入26栏的资料,当C=65、R=1时,Cell="C1",当C=90、R=1时,Cell="Z1",当C=91、R=1,得到得结果是Cell="[1",Excel没有此一表示法,所以会产生Error,解决法,对C使用Mod并对C以\除法得到的结果放置另一变数,{Cell = Chr(C\26) & Chr(C Mod 26) & R}←这是理论,正确执行码请自己调整。
      

  5.   

    你可以使用access中odbc連接到oracle, 然後使用連接表連到oracle, 使用access中的導入,倒出功能方便的進行此工作. 前提時,建立一個odbc連接到oracle上, 不會建立odbc再問
      

  6.   

    这个例子请用户输入odbc数据源,然后把此数据源中所有数据表导出到一个excel的xls文件,名称为数据源的名称。速度比较快,今天早上才发现的好东东。
    顺便说一句,以逗号分割的文件是*.csv文件,它能被excel识别。
    Option Explicit
    Private Sub Command1_Click()
    Dim cnnstring As String
    Dim cnn As New ADODB.Connection
    Dim stable, rs As New ADODB.Recordset
    Dim sfilename As String
    Dim nrecord, srecord, stmpfield As String
    Dim ssql As String
    Dim k, m, ifile, p As Integer
    Dim xlapp As New Excel.Application
    Dim xlbook As New Excel.Workbook
    Dim xlsheet As New Excel.Worksheet
    Dim xlQuery As New Excel.QueryTable
    If Text1.Text = "" Then
       MsgBox "请输入odbc数据源"
       Exit Sub
    End IfIf Dir("C:\Documents and Settings\Administrator\桌面" + "\ConvertFiles", vbDirectory) = "" Then
        MkDir "C:\Documents and Settings\Administrator\桌面" + "\ConvertFiles"   'mkdir app.path+"\convertfiles"
    End If
    ChDir "C:\Documents and Settings\Administrator\桌面\ConvertFiles"
    '如果没有converfiles文件夹,则建立此文件夹,默认为桌面cnnstring = "PROVIDER=MSDASQL;dsn=" & Text1.Text & ";uid=sa;pwd=;"
    cnn.CursorLocation = adUseClient
    cnn.Open cnnstring
    Set stable = cnn.OpenSchema(adSchemaTables)
    stable.MoveFirst
    Set xlbook = xlapp.Workbooks.AddDo Until stable.EOF
      If stable!TABLE_TYPE = "TABLE" Then
        ssql = "select * from [" & stable!table_name & "]"
        Set rs = cnn.Execute(ssql)
        Set xlsheet = xlbook.Worksheets.Add
        With xlsheet
            .Range(.Cells(1, 1), .Cells(1, rs.Fields.Count)).Font.Name = "黑体"
            '设标题为黑体字
            .Range(.Cells(1, 1), .Cells(1, rs.Fields.Count)).Font.Bold = True
            '标题字体加粗
              .Range(.Cells(1, 1), .Cells(rs.RecordCount + 1, rs.Fields.Count)).Borders.LineStyle = xlContinuous
              '设表格边框样式
            .Name = stable!table_name
        End With
        Set xlQuery = xlsheet.QueryTables.Add(rs, xlsheet.Range("a1"))
        xlQuery.FieldNames = True '显示字段名
        xlQuery.Refresh
        stable.MoveNext
      Else
        stable.MoveNext
      End If
    Loop
    xlsheet.SaveAs "C:\Documents and Settings\Administrator\桌面\ConvertFiles\" & Text1.Text & ".xls"MsgBox "导出完成"
    xlapp.Quit
    Set xlsheet = Nothing
    Set xlbook = Nothing
    End Sub
      

  7.   

    补充,不管你用odbc还是oledb都可以,只要的出一条查询结果的记录集。