别人的写的,借来学习:Public Function ExporToExcel(strOpen As String) '********************************************************* '* 名称:ExporToExcel '* 功能:导出数据到EXCEL '* 用法:ExporToExcel(sql查询字符串) '********************************************************* Dim Rs_Data As New ADODB.Recordset Dim Irowcount As Integer Dim Icolcount As Integer
Dim xlApp As New Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet Dim xlQuery As Excel.QueryTable
With Rs_Data If .State = adStateOpen Then .Close End If .ActiveConnection = Cnn .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockReadOnly .Source = strOpen .Open End With With Rs_Data If .RecordCount < 1 Then MsgBox ("没有记录!") Exit Function End If '记录总数 Irowcount = .RecordCount '字段总数 Icolcount = .Fields.Count End With
Set xlApp = CreateObject("Excel.Application") Set xlBook = Nothing Set xlSheet = Nothing Set xlBook = xlApp.Workbooks().Add Set xlSheet = xlBook.Worksheets("sheet1") xlApp.Visible = True
'添加查询语句,导入EXCEL数据 Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))
不用一句一句的写 Private Sub Command1_Click() 'Project/References/Microsoft Excel 9.0 Object Library 'Project/References/Microsoft ActiveX Data Object 2.6 Library
Dim xlsApp As Excel.Application Dim rstIns As ADODB.Recordset Dim strFil As String
'Specify the file name where your recordset save to. strFil = "D:\TempXlsFile.xls"
On Error GoTo ErrHandler
'Create a recordset for demostration. Set rstIns = New ADODB.Recordset rstIns.Fields.Append "ID", adChar, 4 rstIns.Fields.Append "VAL", adInteger rstIns.Open For i = 1 To 10 rstIns.AddNew rstIns.Fields("ID").Value = Format$(i, "0000") rstIns.Fields("VAL").Value = i Next i
'Open Excel application Set xlsApp = New Excel.Application
'Add a new workbook where your data saved. xlsApp.Workbooks.Add
'Let the computer have a rest. MsgBox "Press any key to continue..."
xlsApp.Visible = True
'------------------------------------------ 'Copy the recordset at the cell A1 xlsApp.Range("A1").CopyFromRecordset rstIns '------------------------------------------
'Save the data for future use. xlsApp.ActiveWorkbook.SaveAs strFil
'Every thing is done. Deallocate the resources back to system. Set xlsApp = Nothing Set rstIns = Nothing
Exit Sub
ErrHandler: Set xlsApp = Nothing Set rstIns = Nothing
如果想要的话,留下你的email吧!
'*********************************************************
'* 名称:ExporToExcel
'* 功能:导出数据到EXCEL
'* 用法:ExporToExcel(sql查询字符串)
'*********************************************************
Dim Rs_Data As New ADODB.Recordset
Dim Irowcount As Integer
Dim Icolcount As Integer
Dim xlApp As New Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim xlQuery As Excel.QueryTable
With Rs_Data
If .State = adStateOpen Then
.Close
End If
.ActiveConnection = Cnn
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockReadOnly
.Source = strOpen
.Open
End With
With Rs_Data
If .RecordCount < 1 Then
MsgBox ("没有记录!")
Exit Function
End If
'记录总数
Irowcount = .RecordCount
'字段总数
Icolcount = .Fields.Count
End With
Set xlApp = CreateObject("Excel.Application")
Set xlBook = Nothing
Set xlSheet = Nothing
Set xlBook = xlApp.Workbooks().Add
Set xlSheet = xlBook.Worksheets("sheet1")
xlApp.Visible = True
'添加查询语句,导入EXCEL数据
Set xlQuery = xlSheet.QueryTables.Add(Rs_Data, xlSheet.Range("a1"))
With xlQuery
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
End With
xlQuery.FieldNames = True '显示字段名
xlQuery.Refresh
With xlSheet
.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Name = "黑体"
'设标题为黑体字
.Range(.Cells(1, 1), .Cells(1, Icolcount)).Font.Bold = True
'标题字体加粗
.Range(.Cells(1, 1), .Cells(Irowcount + 1, Icolcount)).Borders.LineStyle = xlContinuous
'设表格边框样式
End With
With xlSheet.PageSetup
.LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10公司名称:" ' & Gsmc
.CenterHeader = "&""楷体_GB2312,常规""公司人员情况表&""宋体,常规""" & Chr(10) & "&""楷体_GB2312,常规""&10日 期:"
.RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
.LeftFooter = "&""楷体_GB2312,常规""&10制表人:"
.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:"
.RightFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
End With
xlApp.Application.Visible = True
Set xlApp = Nothing '"交还控制给Excel
Set xlBook = Nothing
Set xlSheet = NothingEnd Function
我有一個EXCEL的控件﹐要的話﹐留下你的email吧﹐發給你。
Private Sub Command1_Click() 'Project/References/Microsoft Excel 9.0 Object Library
'Project/References/Microsoft ActiveX Data Object 2.6 Library
Dim xlsApp As Excel.Application
Dim rstIns As ADODB.Recordset
Dim strFil As String
'Specify the file name where your recordset save to.
strFil = "D:\TempXlsFile.xls"
On Error GoTo ErrHandler
'Create a recordset for demostration.
Set rstIns = New ADODB.Recordset
rstIns.Fields.Append "ID", adChar, 4
rstIns.Fields.Append "VAL", adInteger
rstIns.Open
For i = 1 To 10
rstIns.AddNew
rstIns.Fields("ID").Value = Format$(i, "0000")
rstIns.Fields("VAL").Value = i
Next i
'Open Excel application
Set xlsApp = New Excel.Application
'Add a new workbook where your data saved.
xlsApp.Workbooks.Add
'Let the computer have a rest.
MsgBox "Press any key to continue..."
xlsApp.Visible = True
'------------------------------------------
'Copy the recordset at the cell A1
xlsApp.Range("A1").CopyFromRecordset rstIns
'------------------------------------------
'Save the data for future use.
xlsApp.ActiveWorkbook.SaveAs strFil
'Every thing is done. Deallocate the resources back to system.
Set xlsApp = Nothing
Set rstIns = Nothing
Exit Sub
ErrHandler: Set xlsApp = Nothing
Set rstIns = Nothing
End Sub