vb导出数据到Excel
- 格式:doc
- 大小:25.00 KB
- 文档页数:3
vb导出数据到Excel
Public Function ExporToExcel(strOpen As String) '入参为SQL查询语句
'********************************************************* '* 名称:ExporToExcel
'* 功能:导出数据到EXCEL
'* 用法:ExporToExcel(sql查询字符串)
'********************************************************* Dim Rs_Data As New ADODB.Recordset
Dim Irowcount As Integer
Dim Icolcount As Integer
Dim FILENAME As String
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 = Cn
.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 = False 'Excel在后台运行
'添加查询语句,导入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.Nam e = "黑体"
'设标题为黑体字
.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 ' .LeftHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10统计时间:"
.CenterHeader = "&""楷体_GB2312,常规""库存明细&""宋体"
' .RightHeader = "" & Chr(10) & "&""楷体_GB2312,常规""&10单位:"
' .LeftFooter = "&""楷体_GB2312,常规""&10制表人:" & Ygxm
.CenterFooter = "&""楷体_GB2312,常规""&10制表日期:" & Date
.RightFooter = "&""楷体_GB2312,常规""&10第&P页共&N页"
End With
FILENAME = App.Path & "\" & Date & ".Xls"
xlBook.SaveAs (FILENAME) '保存文件
xlApp.Quit
Set xlApp = Nothing
' xlApp.Application.Visible = True
' Set xlApp = Nothing '"交还控制给Excel
' Set xlBook = Nothing
' Set xlSheet = Nothing
End Function