具体过程如下:
假设我们要将表Agcallop.dbf文件输出为Excel格式文档,报表形如图1所示。为使通用性更强,页面采用A4纸横向输出,默认字体为宋体10号,页脚处添加页号。
部分程序代码如下:
m.outfilename=putfile('输出结果','agcallop','xls')
&&取导出文件名称
图1 Excel报表
ef=CREATEOBJECT('Excel.application')
&&调用Excel程序
ef.Workbooks.add
&&添加工作簿
ef.Worksheets("sheet1").Activate
&&激活第一个工作表
ef.visible=.t.
&&显示Excel界面
ef.Cells.Select
&&选择整张表
ef.Selection.Font.Size = 10
&&设置整表默认字体大小为10
select 0
use agcallop
&&选择被导出的表
num=reccount()
&&求导出总记录数
go top
ef.range("F1:K1").Select
&&选择标题栏所在单元格
ef.Selection.Merge
&&合并单元格
with ef.range("F1 ")
&&设置标题及字体属性
.value='客户服务部业务代表工作量情况统计表'
.Font.Name="黑体"
.Font.size=18
endwith
ef.Rows(2).RowHeight=1/0.035
&&设置第二行高度为1cm
ef.range("H2:O2").Select
&&选定统计条件栏所在单元格
ef.Selection.Merge
&&合并单元格
ef.range("H2").Font.size=10
ef.range("H2").HorizontalAlignment=4
&&设置内容对齐方式为右对齐,3为居中,2为右对齐
ef.range("H2").value='统计时间:'+dtoc(date())+'打印日期:'+dtoc(date())
ef.Rows("3:4").Select
with ef.Selection
.HorizontalAlignment = 3
&&设置3、4行为水平对齐
.VerticalAlignment = 2
.NumberFormatLocal = "@"
&&设置3、4行为字符型内容
endwith
ef.Range("A3:A4").Select
ef.Selection.Merge
&&纵向合并第一列3、4行
ef.Range("A3").Value='工号'
&&设置第一列标题内容
ef.Columns("A").Select
ef.Selection.HorizontalAlignment = 3
ef.Columns("A:B").Select
ef.Selection.NumberFormatLocal = "@"
&&设置A、B列为字符型内容
ef.Range("B3:B4").Select
ef.Selection.Merge
&&纵向合并第二列3、4行
ef.Range("B3").Value='姓名'
&&设置第二列标题内容
ef.Columns("B").Select
ef.Selection.HorizontalAlignment = 3
ef.Range("C3:E3").Select
&&横向合并第三行C-E列
ef.Selection.Merge
ef.Range("C3").Value='话务总量'
&&第三行大标题为“话务总量”的列
ef.Range("C4").Value='电话呼入量'
&&“话务总量”下第1个小标题“电话呼入量”
ef.Range("D4").Value='电话呼出量'
&&“话务总量”下第2个小标题“电话呼出量”
ef.Range("E4").Value='合计'
&&“话务总量”下第3个小标题“合计”
ef.Range("F3:H3").Select
ef.Selection.Merge
ef.Range("F3").Value='话务总时间'
ef.Range("F4").Value='呼入时间'
ef.Range("G4").Value='呼出时间'
ef.Range("H4").Value='合计'
ef.Range("I3:K3").Select
ef.Selection.Merge
ef.Range("I3").Value='单个话务平均时间'
ef.Range("I4").Value='呼入时间'
ef.Range("J4").Value='呼出时间'
ef.Range("K4").Value='合计'
ef.Range("L3:L4").Select
ef.Selection.Merge
ef.Range("L3").Value='累计工作时间'
ef.Range("M3:M4").Select
ef.Selection.Merge
ef.Range("M3").Value='无效时间'
ef.Range("N3:N4").Select
ef.Selection.Merge
ef.Range("N3").Value='录入量'
ef.Range("O3:O4").Select
ef.Selection.Merge
ef.Range("O3").Value='有效时间比'
接下来通过scan语句,依次为每一行每一列单元格赋值。为了获得更好的打印效果,还需进行页面设置,如标题行、页面居中、横向排版等,还可以加边框线。
以上程序在VFP 6+Excel 2000+Windows 2000下调试通过。实际应用中可根据需要对各项参数设置进行相应调整。
科技时代意见反馈留言板
电话:010-82612286 或 010-82628888-3488 欢迎批评指正
新浪简介
|
用户注册
|
广告服务
|
招聘信息
|
中文阅读
|
Richwin
|
联系方式
|
帮助信息