Visual FoxPro控制Excel自动生成报表
第25卷第4期成都大学(自然科学版) 2006年12月JournalofChengduUniversity(NaturalScienceEdition)
V01.25No.4
Dec.2oo6
文章编号:1004-5422(2006)04-0314-03
VisualFoxPro控制Excel自动生成报表
胡屹,彭长宇,杨柳
(成都大学嫩务处,四川成都610106) 摘蔓:介绍使用VisualFoxPro控制Excel自动生成报表,讨论了报表制作工程中的
一些细节性问题
关键词:VisualFoxPro;Excel;报表
中图分类号:TP317.3文献标识码:A
1引言
VisualFoxPro是目前广泛使用的小型数据库 管理系统,具有易学,高效,快速开发应用程 序.面向对象等强大功能,因此倍受小型企事业 单位数据管理人员青睐.但是,VisualFoxPro开 发环境中提供的报表控件在制作复杂报表时显得 不够理想,而且用户对生成的报表不能进行修 改,成为其一大遗憾.Excel作为现代办公常用 的电子表格制作工具,以其易操作性和实用性而 受到了各行业办公人员的喜爱.一本文根据实际应 用实践,介绍利用VisualFoxPro将数据导出到 Excel,并控制Excel生产报表的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
.
2VisualFoxPro控制Excel的方法
下面程序以制作某个班学生成绩登记表为例
加以说明,班级名为"计科O5级1班".
2.1将数据导出到Excel
利用copy命令从数据表中将报表数据筛选导 出到Excel文件.
exlfile=sys(5)+sys(2003)+.I+"计科05级1班" &&生成Excel吏件名
USestudent
&&打开学生总表
copyto&exl—
fileforclass—name="计科05级1班"
typex15fielxh,xm
&&将班级名称为计科05级I班的
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
导出到指 定的Excel文件中
countto1"8forclass—name="计科o5级1班" &&统计谊班学生数,为以后控制Excel
格式
pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载
做准备 use
2.2创建Excel对象
要在VisualFoxPro中控制Excel,就必须用 到OLE对象.首先应创建一个OLE对象,然后 在对象中打开已经存在的Excel文件.
oleappcreateobject("Exce1.application")
&&创建一个ole对象
oleapp.workbooks.open('&exl_filc')
&&打开Excel史件
oleapp:visible=.f. &&设置Excel不可见
olei=oleapp.workbooks.item(1)
2.3Excel数据报表格式控制
Excel表格的控制包括:主要单元格的合并,
边框的控制,插入,删除单元格.设定报表标
题,对报表页面进行设置等.这是VisualFoxPro 控制Excel自动生成报表的核心部分.
2.3.1设置报表标题
oleapp.activesheet.rows(1).delete &&删除原表的字段
oleapp.active.sheet.1OWS(1).insert &&在第一行前插入空白行
olei.sheets.item(1).range("al:hi").select
&&选中第一行的al—hl列
oleapp.selection.mergecells=.t. &&合并所选单元格
witholeapp.range("al")
收稿日期:2006一o9—20
作者简介:胡屹(1977一),男,助教,从事数据库应用与开发工作
第4期胡屹.等:VisualFoxPro控制Excel自动生成报表?3l5? &&设置标题厦字体属性
.
value="计科05级l班平时成绩登记袁"
&&主标题名称
.f0nt.name="黑体"
&&字体
.
f0nt.size=17
&&字号
.horizontalalignment=3
&&单元格内容居中
endwith
oleapp.activesheet.row8(2).inse~
&&在第二行前插入空白行
ole1.sheets.item(1).range("a2:h2").select oleapp.selection.mergeeells=.t.
witholeapp.range("a2")
&&设置副标题及字体属性
.
value="20—2o学年学期课程:教师:"
.
font.name="楷体_gb2312"
.f0nt.size=14
.
horizontalalignment=3&&单元格内客居中
endwith,
2.3.2设置报表表头
?设置列名.
olei.activesheet.range("a3:a3").value='学号'
old.activesheet.range("b3:b3").value='姓名'
olei.activesheet.range("c3:c3").value='平时成绩l'
olei.activesheet.range("d3:d3").value='平时成绩2'
olei.aetivesheet.range("e3:e3").value='平时成绩3'
old.activesheet.range("O:O").value='平时成绩4'
olei.activesheet.range(":g3").value='平时成绩5'
olei.activesheet.range("h3:h3").value='总评成绩'
?设置列宽度.
oleapp.activesheet.columns(1).columnwidth=20 oleapp.activesheet.columns(2).eolumnwidth=10 oleapp.activesheet.columns(3).columnwidth=8 oleapp.aetivesheet.columns(4).eolumnwidth=8 oleapp.activesheet.columns(5).cohmnwidth=8 oleapp.activesheet.columns(6).columnwidth=8
oleapp.aetivesheet.columns(7).columnwidth8 oleapp.activesheet.columns(8).eolumnwidth=12 (1).1inestyle:l
olei.sheets.item(1).range(olei.sheets.item(1).cells (3,1),olei.sheets.item(1).cells(rs,8)).borders (2),linestyle=1
olei.sheets.item(1).range(olei.sheets.item(1).cells (3,1),olei.sheets.item(1).cells(rs,8)).borders (3).1inestyle=l
olei.sheets.item(1).range(olei.sheets.item(1).cells (3,1),olei.sheets.item(1).cells(rs.8)).borders (4).1inestyle=l
2.3.4设置报表数据部分的格式
zls='k'一alhrim(str(rs,8))
&&获取最后一个单元格地址
witholeapp.range("a3:&zls")
.verticalalignment=2
&&设置数据区域打印区域文字垂直居中
.horizontalalignment=2
&&设置数据区域打印区域文字水平居中
.
font.name='仿宋_gb2312'
.f0nt.size=14
endwith
,
2.3.5报表页面设置
withohapp.sheets.item(1).pagesetup
&&页面设置
.
centerfooter="第"+"&p"+"页"+"/共"+" &n"+"页"
&&页脚中间文字
.
righffooter="成都大学教务处"
&&页脚右边文字
.topmargin=0.6/0.035&&顶边距
.
bottommargin=1.5/0.035&&底边距
.1eftmargin=0.8/0.035&&左边距
.
rightmargin=0.5/0.035&&右边距
.
footermargin;0.8/0.035&&页脚边距
.
printtitlerows="$l:$3" &&设置打印的顶端标题行1—3行 .
orientation=1&&设置纸张为纵向
endwith
2.3.6报表保存
oleapp.workbooks(1).save() 2.3.3添加表格边框oleapp.workbook(1).close(1)
rs=rs+3releoleapp
..三行是标题和表头,从第4行开始给表格3报表制作应注意的问题加上边框.
..….
olei.sheets.item(1).range(olei.sheets.item(I).cells
(3,1).olei.sheets.item(I).cells(rs,8)).bordel~
3.1预先在Excel中对报表格式进行设置
报表格式的选择对报表的实现方法起着决定
-
3l6-成都大学(自然科学版)第25卷
性的影响.对于报表格式多变的情况.建议先通 过Excel制作模板,根据模板在程序中自动控制 报表的生产.
3.2报表打印
对于Excel报表的打印,最好不要通过Visual FoxPm在程序中进行控制,因为报表往往需要进 行审查或者对其中数据进行更改.所以最好通过 程序控制输出或显示Excel文件,以便修改.另 一
个重要的原因是Excel具有强大的排版功能, 而这正是选择Excel导出报表的重要原因. 4结论
用VisualFoxPm控制Excel来完成数据报表 功能,是VisualFoxPro制作复杂报表的最佳选 择,因为VisualFoxPro不但能控制数据的导出与 导人,而且通过程序控制,Excel可以实现Excel 当前应用中的大部分功能,制作出符合要求的 报表.
参考文献
[1]夏强.ExcelVBA应用开发与精讲[M].北京: 科学出版社,2006.
[2]韩泽坤,朱瑞亮.microsoftExcelVBA高效办公范例 应用[M].北京:中国青年电子出版社,2004. [3]黄睿.马然.ExcelVBA应用程序专业设计实用 指南[M].北京:电子工业出版,2006.
[4]张洪举.VisualFoxPro6.0—9.0解决
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
与范例大
全(M].北京:人民邮电出版社,2006.
[5]孙敬杰.ExcelVBA入门与实例演练[M].北京:
中国青年电子出版社,2oo5.
ExcelAutomaticBuildingReportFormbyVisualFoxPro
HUYi,PENGChangyu,YANGLiu
(EducationalAdministrationOffice,ChengduUniversity.Chengdu610106,China) Abstract:ThisarticleintroduceshowtouseVisualFoxProtocontrolExcelautomaticbuilding
report
form,anddiscusses$omedetailsduringthereportformbuilding. Keywords:VisualFoxpro;Excel;reportform