打印:当我点打印时候,就把本地机器上EXCEL的打印预览调出来了,而且把数据也显示到里面了,怎么实现?

tiandiqing 2004-10-15 10:04:23
就是这个问题!!!

当我点打印时候,就把本地机器上EXCEL的打印预览调出来了,而且把数据也显示到里面了,怎么实现?

那位大侠给看看呀!我是初学者
...全文
133 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
huzhishan 2004-10-28
CRViewer控件是不是Crystal Report中才有
回复
jam021 2004-10-15
关注,帮你顶!
回复
junki 2004-10-15
在VB中添加一个EXCEL对象,CRViewer控件,CommonDialog控件

打印预览∶
Load CRViewerfrm
With CRViewerfrm.CRViewer1
.ReportSource = EXCEL对象
.ViewReport
Do While .IsBusy
DoEvents
Loop
.Zoom 1
End With

然后设置打印机∶
CMDialog.DialogTitle = "打印" ' Set Printer Set Up Dialog box title
CMDialog.Flags = cdlPDPrintSetup ' Printer Set up Dialog
CMDialog.PrinterDefault = True
CMDialog.ShowPrinter ' Display Printer Set up Dialog Box
回复
GGL123 2004-10-15
'将下文加入到一个模块中,屏幕中调用如下ExporToExcel("select * from table")则实现将其导出到EXCEL中

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 = MK_sjy
.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
xlSheet.PrintPreview '该语名实现打印预览

Set xlApp = Nothing '"交还控制给Excel
Set xlBook = Nothing
Set xlSheet = Nothing
'注: 须在程序中引用 'Microsoft Excel 9.0 Object Library'和ADO对象,机器必装Excel 2000

End Function
回复
GGL123 2004-10-15
up
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告