如何导出excel格式的报表
我现在要编个vb程序,是从sql server2000数据库取出数据生成报表,然后可以把报表导出为excel格式,请问怎么做,谢了,最好能有个代码例子。 问题点数:20、回复次数:4Top
1 楼lingbo_wx(上海小浪人)回复于 2005-04-22 11:21:34 得分 0
我也要Top
2 楼JJclub(阿J)回复于 2005-04-22 15:32:43 得分 20
很久之前写的,你看一下行不行:
Public Sub RecordsetPrint(myRecordset As DAO.Recordset)
'********************************************************
' ◆ 函 数 名:RecordsetPrint
' ◆ 功 能:用Excel实现报表打印/预览功能
' ◆ 说 明:
' ◆ 作 者:C J
' ◆ 日 期:2004年05月11日
' ◆ 描 述:
' ◆ 修 改:改为直接对Recordset进行操作
'********************************************************
If myRecordset Is Nothing Then Exit Sub
Screen.MousePointer = vbHourglass
'----------Excel操作--------
Dim m_Excel As Excel.Application
Dim m_ExcelBook As Excel.Workbook
Dim m_ExcelSheet As Excel.Worksheet
'--------------------------
Set m_Excel = CreateObject("Excel.Application")
Set m_ExcelBook = m_Excel.Workbooks.Add
Set m_ExcelSheet = m_ExcelBook.Worksheets(1)
With myRecordset
Dim intCol As Long
Dim intRow As Long
'-----输出标题行-----
For intCol = 0 To .Fields.Count - 1
'm_ExcelSheet.Cells(1, intCol + 1) = .Fields(intCol).Properties("Caption")
m_ExcelSheet.Cells(1, intCol + 1) = .Fields(intCol).ValidationText
Next intCol
'-------------------
'------输出内容------
.MoveFirst
Do While Not .EOF
For intCol = 0 To .Fields.Count - 1
m_ExcelSheet.Cells(intRow + 2, intCol + 1) = .Fields(intCol).Value
Next intCol
.MoveNext
intRow = intRow + 1
Loop
'-------------------
End With
'-----设置页面打印信息-----
With m_ExcelSheet.PageSetup
.LeftHeader = "&""楷体_GB2312,常规""&10制表日期:" & Date
.CenterHeader = "&""楷体_GB2312,常规""&15报表大标题"
.RightHeader = "&""楷体_GB2312,常规""&10报表名称"
.LeftFooter = "&""楷体_GB2312,常规""&10公司:XXXXXX公司"
.CenterFooter = "&""楷体_GB2312,常规""&10第&P页 共&N页"
.RightFooter = "&""楷体_GB2312,常规""&10制表人:CJ"
.PrintGridlines = True
.Orientation = xlLandscape
End With
'-------------------------
'----数据位于单元格中间----
m_Excel.Cells.Select
m_Excel.Selection.HorizontalAlignment = xlCenter
'-------------------------
'----Excel其它参数设置-----
m_Excel.Application.Visible = True
m_ExcelSheet.PrintPreview
m_Excel.DisplayAlerts = False
m_ExcelBook.Close
m_Excel.Quit 'Quit之后无法实现分页预览
'-------------------------
'-----释放变量-----
Set m_Excel = Nothing
Set m_ExcelBook = Nothing
Set m_ExcelSheet = Nothing
'-----------------
Screen.MousePointer = vbDefault
End Sub
Top
3 楼kain80817(kain)回复于 2005-04-22 15:35:30 得分 0
关键在于Excel这个对象的应用Top
4 楼intocsdn(小胖哥)回复于 2005-04-22 16:50:44 得分 0
学习Top




