VB程序导出数据到Excel.docx
VB程序导出数据到Excelvb导出数据到Excel Public Function ExporToExcel(strOpen As String,cn As ADODB.Connection) '入参为SQL查询语句,cn为当前活动的连接 '* '* 名称: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.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 ' .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