基于VFP的Excel煤炭报表制作
VFP报表操作

第9章报表与标签练习一 报表与标签基本操作【实验目的】1.掌握用报表向导创建报表;2.熟练掌握使用报表设计器创建报表;【教材内容】一、报表报表包括两个基本部分:数据源和布局。
数据源是报表的数据来源,它通常是数据库中的表或自由表,也可以是视图、查询或临时表。
布局定义报表的打印格式。
报表设计就是根据报表的数据源和应用需要来设计报表的布局。
二、创建报表1.基本步骤:(1)选定报表类型;(2)建立报表文件;(3)编辑报表文件;(4)预览和打印报表;2.创建报表:(1)利用“报表向导”“文件/新建”-(类型)选“报表”-“向导”钮-选择向导-按提示进行(2)利用“报表设计器”①“文件/新建”-(类型)选“报表”-“新建文件”钮②CREATE REPORT报表文件名进入“报表设计器”三、设计报表1.“页标头”带区:位于每一页的顶部并出现在每一页中,即每页的标题。
常用于显示各字段名与分隔线。
2.“细节”带区:常用于显示表中各字段记录的值。
运行报表时表中记录按细节规定的格式输出。
3.“页注脚”带区:位于每一页的底部并出现在每一页中,即每页的结尾。
常用于显示报表页码、日期与时间等。
4.工具栏:“报表设计器”、“报表控件”、“布局”等。
可从“显示”菜单中调出5.设置报表“数据源”:(1)设置“数据环境”①“显示/数据环境”②右击“报表设计器” — “数据环境”③单击“数据设计器”工具箱中“数据环境”钮(2)向“数据环境”中添加表、视图①“数据环境/添加”②右击“数据环境设计器” — “添加”③单击“报表设计器”工具箱中“数据环境”钮6.修改报表带区:(1)调整大小拖带区标识栏(2)放置控件单击“报表控件”工具箱中“控件”钮— 放置控件如:用“标签”控件,为各字段加上字段名作为小标题【实验内容】1.用报表向导为学生表创建一个学生基本情况报表(学生基本情况.frx)2.用报表设计器为书库创建一个书籍情况报表(书籍情况.frx)【高手进阶】1.用报表向导为学生表,成绩表创建一个“一对多报表”学生成绩报表(学生成绩.frx)2.使用标签向导为学生表设计一个准考证的标签。
用VisualFoxpro设计用Excel表格的程序

用VisualFoxpro设计用Excel表格的程序一、用Visual Foxpro 设计用Excel表格的程序利用OLE Automation 设计Excel 应用程序Excel支持的对象说明:(a) VBA 对象:Application Excel应用程序对象WorkBooks Excel活页薄对象(b)所使用的MethodApplication Cells 设定或传回来某个网格的内容Range 传回或设定某一个范围的网格Charts 传回或设定活页簿的单一统计表Quit 结束Excel ApplicationSave 激活存储文件对话框WorkBooks Add 新增一个工作簿Charts Add 新增一个统计图所使用的PropertyApplication Visible 是否现实再SCREEN上.T. , .F.Value 传回或者设定存储文件的内容ActiveSheet 回应Excel Application 执行工作表对象实例说明:启动Excel:MyExcel=CreateObject('Excel.Application') &&建立Excel对象MyExcel.Visible=.T. &&让Excel对象再屏幕上显示出来如何增加工作簿:MyExcel.WorkBooks.Add &&在Excel对象中增加一份工作簿(WorkBook)如何在工作簿中增加Sheet(工作表)MyExcel.Sheets.Add &&增加工作表(在当前工作簿中)如何删除工作表MyExcel.ActiveWorkBooks.Sheets(1).Delete &&把工作簿中的BOOK(1)删除向指定的工作簿中的工作表(Sheet)中存储数据*Excel.application Object*Excel.application.ActiveWorkBook Property*WorkBOoks Object*WorkBOoks Object的Add Method.*Sheets对象*Sheets(Index)对象指定索引工作表*Excel.Application对象的Cells Method结合Value属性Example:CLEAR ALLSET PA TH TO SYS(2004)+'SAMPLES\DATE'USE CUSTOMERMYEXCEL=CREA TEOBJEXT('EXCEL.APPLICA TION')MYEXCEL.VISIBLE=.T.MYEXCEL.WORKBOOKS.ADDMYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).V ALUE='客户编号'MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,2).V ALUE='公司行号'SELECT CUSTOMERR=2C=1GOTO TOPFOR I=1 TO 20MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C).V ALUE=CUSTOMER.CUST_IDMYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C+1).V ALUE=/doc/5c5714365.html,PANY R=R+1SKIPENDFOR调整单元格宽度:MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).column width=30调整单元格对齐方式:MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).horizont alalig=11为默认方式,2为左对齐,3为中对齐,4为右对齐。
关于VFP输出EXCEL的格式

关于VFP输出EXCEL的格式以下是我在处理 VFP 输出 EXCEL 报表时用的一段程序片段,以供参考。
如有更好的建议,亦请拿出来讨论讨论。
tmpsheet = GETOBJECT('','excel.sheet')if .not. ( type('tmpsheet')='O' ) && U 未能产生EXCEL对象=messagebox( '创建报表失败!' + CHR(13) + CHR(13) + ;'请检查你的系统是否正确安装 EXCEL 软件!' + CHR(13) + CHR(13) + ;'请联络系统管理员' + CHR(13) + ;'', 48, '')returnendifxlapp = tmpsheet.APPLICATIONxlapp.VISIBLE = .f.=messagebox( '准备生成月帐单' + CHR(13) + CHR(13) + ;'日期:' + dtoc(tt_this_day) + CHR(13) + CHR(13) + ;'如有在使用 EXCEL ,请暂时不要使用打印预览功能!!!' + CHR(13) + CHR(13) + ;'报表生成的过程中,请暂时不要使用计算机', 48, '')* wait wind '正在生成'+ form_title +'报表,请稍侯......' nowait***! 创建excel打印对象 *****xlapp.workbooks.ADD()xlapp.ActiveWindow.WindowState = 2 && 最大化打开的工作本xlsheet = xlapp.activesheetlc_name = allt(file_name_check( &temp_dls2_a..kh_mc )) = lc_name***! 创建excel打印对象 *****xlsheet.Columns("A:G").Font.Size = 9 && 选择列xlsheet.Columns("A:A").ColumnWidth = 10 && 设置列宽度xlsheet.Columns("B:B").ColumnWidth = 15 && 设置列宽度xlsheet.Columns("C:C").ColumnWidth = 16 && 设置列宽度xlsheet.Columns("D:D").ColumnWidth = 16 && 设置列宽度xlsheet.Columns("E:E").ColumnWidth = 8 && 设置列宽度xlsheet.Columns("F:F").ColumnWidth = 10 && 设置列宽度xlsheet.Columns("G:G").ColumnWidth = 8 && 设置列宽度xlsheet.Columns("A:A").NumberFormatLocal = "@ "xlsheet.Columns("B:B").NumberFormatLocal = "@ "xlsheet.Columns("C:C").NumberFormatLocal = "@ "xlsheet.Columns("D:D").NumberFormatLocal = "@ "xlsheet.Columns("E:E").NumberFormatLocal = "0 "xlsheet.Columns("F:F").NumberFormatLocal = "0.00_ "xlsheet.Columns("G:G").NumberFormatLocal = "@ "xlsheet.Rows("5:5").ShrinkT oFit = .t. && 自动收缩为适当尺寸以适应有效列宽xlsheet.Rows("5:5").HorizontalAlignment = 3 && 水平 1左对齐,3居中,4右对齐xlsheet.Rows("1:2").HorizontalAlignment = 3 && 水平 1左对齐,3居中,4右对齐* xlsheet.Columns("G:G").ShrinkToFit = .t. && 自动收缩为适当尺寸以适应有效列宽***! 设置页面信息 *****In_Po = 0.0393700787401575 && 将度量单位从英寸转换为磅基础单位: 0.0393700787401575英寸 -> 0.1磅xlsheet.PageSetup.LeftMargin = xlapp.Application.InchesT oPoints( In_Po * 10 )xlsheet.PageSetup.RightMargin = xlapp.Application.InchesT oPoints( In_Po * 10 )xlsheet.PageSetup.TopMargin = xlapp.Application.InchesT oPoints( In_Po * 10 )xlsheet.PageSetup.BottomMargin = xlapp.Application.Inche sToPoints( In_Po * 20 )xlsheet.PageSetup.HeaderMargin = xlapp.Application.Inche sToPoints( In_Po * 10 )xlsheet.PageSetup.FooterMargin = xlapp.Application.Inches ToPoints( In_Po * 10 )xlsheet.PageSetup.Orientation = 1 && 设置打印方向: 1 纵向 2横向xlsheet.PageSetup.PrintTitleRows = "$1:$7" & & 设置每页的页头xlsheet.PageSetup.RightFooter = "第 &P 页,共 &N 页"xlsheet.PageSetup.CenterHorizontally = .t. && 页面水平居中***! 设置页面信息 ********! 生成打印内容 *****xlsheet.Cells( 2,1).VALUE = "帐单时间:" + t_this_yy + '年 '+t_this_mm + '月'xlsheet.Cells( 3,1).VALUE = "客户名称:"+ allt(&temp_dls2_a..khmc)xlsheet.Cells( 4,1).VALUE = "客户帐号:"+ allt(&temp_dls2_a..zh)prn_line = 5xlsheet.Cells( prn_line, 1).VALUE = "主叫号码"xlsheet.Cells( prn_line, 2).VALUE = "被叫号码"xlsheet.Cells( prn_line, 3).VALUE = "开始时间"xlsheet.Cells( prn_line, 4).VALUE = "结束时间"xlsheet.Cells( prn_line, 5).VALUE = "时长"xlsheet.Cells( prn_line, 6).VALUE = "话费(元)"xlsheet.Cells( prn_line, 7).VALUE = "计费标识"lc_min_col = 1lc_max_col = 7for lo_Col = lc_min_col to lc_max_colxlsheet.Cells( prn_line,lo_Col).Borders(4).Weight = 2 &&框线宽度: 2细线 3粗线endforprn_line = prn_line + 1lc_sum_brhj = 0lc_sum_bybrlj = 0sele &dbf_j_yjd_acount to max_slsum &dbf_j_yjd_a..dj to sum_djgo topscanwait wind '处理'+ lc_name + ' 第'+ str(recno()) + ' 总数:'+str(max_sl) nowaitxlsheet.Cells( prn_line, 1).VALUE = allt(&dbf_j_yjd_a..zjhm) xlsheet.Cells( prn_line, 2).VALUE = allt(&dbf_j_yjd_a..bdhm) xlsheet.Cells( prn_line, 3).VALUE = allt(&dbf_j_yjd_a..riqi)xlsheet.Cells( prn_line, 4).VALUE = allt(&dbf_j_yjd_a..riqi2)xlsheet.Cells( prn_line, 5).VALUE = &dbf_j_yjd_a..fzxlsheet.Cells( prn_line, 6).VALUE = &dbf_j_yjd_a..djxlsheet.Cells( prn_line, 7).VALUE = allt(&dbf_j_yjd_a..jfbs)prn_line = prn_line + 1endscanfor lo_Col = lc_min_col to lc_max_colxlsheet.Cells( prn_line,lo_Col).Borders(3).Weight = 2 &&框线宽度: 2细线 3粗线endforxlsheet.Range("A1:G1").MergeCells = .t. && 合并单元格xlsheet.Range("A2:G2").MergeCells = .t. && 合并单元格xlsheet.Range("A3:G3").MergeCells = .t. && 合并单元格xlsheet.Range("A4:G4").MergeCells = .t. && 合并单元格xlsheet.Range("A5:G5").MergeCells = .t. && 合并单元格xlsheet.Rows("1:1").Font.Size = 11 && 选择行xlsheet.Rows("1:1").Font.Bold = .t.xlsheet.Rows("1:2").RowHeight = 18.00 && 设置行宽度xlsheet.Rows("4:4").HorizontalAlignment = 4 && 水平 1左对齐,3居中,4右对齐xlsheet.Rows("5:5").HorizontalAlignment = 1 && 水平 1左对齐,3居中,4右对齐*! 完成删除提示按扭 *****file_name = all_path + lc_name + '.xls'if file( file_name) = .t.chr(7)result=messagebox( file_name +'已存在,要替换该文件吗? ', 4+48+256, '' )if result=6ERASE &file_namexlapp.activeWorkbook.SaveAs( file_name )endifelsexlapp.activeWorkbook.SaveAs( file_name )endifxlapp.activeWorkbook.close(.f.)endifendscanxlapp = tmpsheet.APPLICATIONxlapp.activeWorkbook.close(.f.)xlapp.quit=messagebox( '已完成报表输出!', 48, '')return。
vfp9章 报表设计

创建报表 设计报表 报表控件的使用 数据分组 设计多栏报表
1
报表的基本结构
表头:报表上方的有关内容描述
包括表名、标题、编制单位、日期等
表体:报表的主要内容
即数据表、查询或视图中的数据
表尾:报表底部的说明内容
包括编制人、审核人、备注等
2
报表布局的类型
列布局:报表没行一条记录(最常用) 行布局:一条记录占用报表多行位置 一对多布局:报表基于一条记录及一对多关 系生成(一条父记录对应多条子记录) 多栏布局:报表有多栏记录 标签布局:有多栏记录,一般用于邮政标签
“报表设计器”窗口→“显示” →“数据 环境”
报表的数据环境与报表文件一起存储
7
报表控件的使用
标签控件:存放不需要改动的文本
添加标签控件、输入文本、格式化文本
域控件:用于表达式、变量的显示
从数据环境中将字名拖入报表设计器窗口 在工具栏中单击“域控件”按钮、输入表达式
线条控件:画水平线或垂直线 矩形/圆角矩形控件:画矩形/圆角矩形 图片/OLE绑定型控件:插入图片
预览和打印报表
5
报表设计器
默认3个区域:页标头、细节、页注脚 添加“标题”和“总结”带区
“报表”→“标题/总结” →选中复选框
添加“列标头”和“列注脚”带区
“文件”→“页面设置” →“列数”框增加列数
添加“组标头”和“组注脚”带区
“报表”→“数据分组” →输入分组表达式
6
报表的数据环境
将数据源添加到报表的数据环境中,即 可随报表的运行而打开,随报表的关闭 而关闭 启动数据环境设计器
3
创建报表的方法
使用报表向导创建
4种类型:报表向导、一对多报表向导、标签向导、 邮件向导
用VFP与Excel结合进行数据处理

用VFP与Excel结合进行数据处理
李正华
【期刊名称】《科技信息》
【年(卷),期】2007(000)009
【摘要】visual Foxpro(VFP)是微软公司开发的一种数据库管理系统,其功能强大,简单易学,深受用户喜爱;Excel是微软公司开发的功能强大的办公软件,在"一切皆表格"的今天被广泛应用.如果能将VFP与Excel有机的结合起来,利用VFP编制程序对数据进行处理,然后将处理后的数据通过Excel工作表输出,兼得数据处理的自动化和良好的操作界面,无疑是一种很好的数据处理方案.本文通过相关实例,介绍了几种从VFP将数据送到Excel的方法,并对它们分别作了阐述.
【总页数】2页(P73-74)
【作者】李正华
【作者单位】安顺职业技术学院信息与电子科学系,贵州,安顺,561000
【正文语种】中文
【中图分类】TP3
【相关文献】
1.在VFP下利用函数与EXCEL进行数据传递
2.利用VFP报表设计器对EXCEL工作表进行报表处理
3.在加油机检定中充分利用Excel表格功能进行数据处理和检定证书出具
4.Excel与VFP的有机结合
5.VB结合Excel进行数据处理和绘图的工程应用
因版权原因,仅展示原文概要,查看原文内容请购买。
利用excel生成煤的可选性曲线

简述利用excel自动生成可选性曲线顾桥厂:卢建筑侯志翔王敏在研究煤炭的性质以及很多实验中,我们都需要画煤的可选性曲线。
煤可选性曲线是选煤理论最核心的内容之一,可以从该曲线上掌握很多煤的基本特性,从而为后续的工艺设计、煤炭的洗选加工提供最基础的理论基础。
本文重点介绍如何利用excel软件来自动生成这四条曲线。
本方法简单易懂,速度快,在实际工作中可操作性、实用性都比较强,同时对初学者也没有太高的理论要求。
一、这是某实验的筛分浮沉实验数据表(表一):煤炭的可选性曲线共有五条,分别是:浮物曲线(β)、沉物曲线(θ)、灰分特性曲线(λ)、密度曲线(δ)、密度±0.1曲线(ε)。
几点说明:1、这五条曲线全部体现在一个由主、副座标组成的座标系内,其中密度曲线、密度±0.1曲线属于副座标系,其它三条曲线属于主座标系内。
2、主座标系的X、Y分别代表灰分、浮物累计产率;副座标系的X1、Y1分别代表密度、沉物累计产率。
3、由五条可选性曲线的生成原理可知,这几条曲线分布在图上时需进行产率座标转换(即由浮物转为沉物或反之),需要产率转换的曲线有:密度曲线、密度±0.1曲线、沉物曲线。
二、座标转换后形成的各曲线数据表如下(表二):第15列数据=100-第6列;第17列数据=100-第4列;第19列数据=100-第9列。
三、在excel中利用表二画曲线步骤如下:1、打开excel软件在工具栏上点插入菜单,选“图表向导”。
2、图表向导打开后选xy散点图,且右侧“子图表类型”中选平滑线散点图,再点击下一步。
3、点下一步后,在界面上点击系列选项卡,点击系列1,右侧名称栏录入“λ曲线”,同时X、Y值分别选第10、11列数据。
4、然后点击系列2,在右侧名称栏录入“β曲线”同时X、Y值分别选第12、13列数据.以此类推,分别将剩下的三条曲线数据全部录入。
5、点击下一步,在图表标题上可填入“可选性曲线”,数值x轴可填入“灰分”,数值y 轴可填入“浮物产率”,填完点下一步。
VFP实现EXCEL数据转换
Visual FoxPro是应用广泛的前台数据库开发平台之一,因此在我们日常工作中时常会遇到DBF数据文件。
然而随着办公自动化的普及,越来越多的时候需要将DBF文件转化为Excel 电子文档。
常用转化方法是在FoxPro中用Copy命令进行格式转化或直接用Excel打开DBF 文件。
这两种方式虽然都能达到目的,却不能得到格式规范、可以直接打印输出的报表,且输出的Excel文件中,无法对数据类型进行有效转换,极易出现数据统计错误。
有没有更好的方法呢?这里有一个更加通用的方法,在VFP中调用Excel,可以由DBF文件直接生成格式如下图所示一样复杂的Excel报表(如图1)。
具体过程如下:假设我们要将表Agcallop.dbf文件输出为Excel格式文档,报表形如图1所示。
为使通用性更强,页面采用A4纸横向输出,默认字体为宋体10号,页脚处添加页号。
部分程序代码如下:m.outfilename=putfile('输出结果','agcallop','xls')&&取导出文件名称图1 Excel报表ef=CREA TEOBJECT('Excel.application')&&调用Excel程序ef.Workbooks.add&&添加工作簿ef.Worksheets("sheet1").Activate&&激活第一个工作表ef.visible=.t.&&显示Excel界面ef.Cells.Select&&选择整张表ef.Selection.Font.Size = 10&&设置整表默认字体大小为10select 0use agcallop&&选择被导出的表num=reccount()&&求导出总记录数go topi=5ef.range("F1:K1").Select&&选择标题栏所在单元格ef.Selection.Merge&&合并单元格with ef.range("F1 ")&&设置标题及字体属性.value='客户服务部业务代表工作量情况统计表' ="黑体".Font.size=18endwithef.Rows(2).RowHeight=1/0.035&&设置第二行高度为1cmef.range("H2:O2").Select&&选定统计条件栏所在单元格ef.Selection.Merge&&合并单元格ef.range("H2").Font.size=10ef.range("H2").HorizontalAlignment=4&&设置内容对齐方式为右对齐,3为居中,2为右对齐ef.range("H2").value='统计时间:'+dtoc(date())+'打印日期:'+dtoc(date()) ef.Rows("3:4").Selectwith ef.Selection.HorizontalAlignment = 3&&设置3、4行为水平对齐.V erticalAlignment = 2&&垂直居中.NumberFormatLocal = "@"&&设置3、4行为字符型内容endwithef.Range("A3:A4").Selectef.Selection.Merge&&纵向合并第一列3、4行ef.Range("A3").V alue='工号'&&设置第一列标题内容ef.Columns("A").Select&&整列选择ef.Selection.HorizontalAlignment = 3&&水平居中ef.Columns("A:B").Selectef.Selection.NumberFormatLocal = "@"&&设置A、B列为字符型内容ef.Range("B3:B4").Selectef.Selection.Merge&&纵向合并第二列3、4行ef.Range("B3").V alue='姓名'&&设置第二列标题内容ef.Columns("B").Select&&整列选择ef.Selection.HorizontalAlignment = 3&&水平居中ef.Range("C3:E3").Select&&横向合并第三行C-E列ef.Selection.Mergeef.Range("C3").V alue='话务总量'&&第三行大标题为“话务总量”的列ef.Range("C4").V alue='电话呼入量'&&“话务总量”下第1个小标题“电话呼入量”ef.Range("D4").V alue='电话呼出量'&&“话务总量”下第2个小标题“电话呼出量”ef.Range("E4").V alue='合计'&&“话务总量”下第3个小标题“合计”ef.Range("F3:H3").Selectef.Selection.Mergeef.Range("F3").V alue='话务总时间'ef.Range("F4").V alue='呼入时间'ef.Range("G4").V alue='呼出时间'ef.Range("H4").V alue='合计'ef.Range("I3:K3").Selectef.Selection.Mergeef.Range("I3").V alue='单个话务平均时间'ef.Range("I4").V alue='呼入时间'ef.Range("J4").V alue='呼出时间'ef.Range("K4").V alue='合计'ef.Range("L3:L4").Selectef.Selection.Mergeef.Range("L3").V alue='累计工作时间'ef.Range("M3:M4").Selectef.Selection.Mergeef.Range("M3").V alue='无效时间'ef.Range("N3:N4").Selectef.Selection.Mergeef.Range("N3").V alue='录入量'ef.Range("O3:O4").Selectef.Selection.Mergeef.Range("O3").V alue='有效时间比'接下来通过scan语句,依次为每一行每一列单元格赋值。
第十四讲 VFP报表设计.
第十四讲 VFP报表设计
内容概要:
报表布局 创建报表 修改报表布局 预览和打印报表
1
信息技术应用-2012级专
第十四讲 报表设计
• 将数据组织成表格形成打印输出。采用VFP提供的报
表,能够方便地实现对表中的数据和查询结果进行显 示或打印。
• 报表包括两个基本部分:数据源和布局。数据源一般
• •
12
信息技术应用-2012级专
“报表向导”步骤3
(3)选择报表样式。
13
信息技术应用-2012级专
“报表向导”步骤4
• (4)定义报表布局。
(5)排序记录。 在“可用的字段或索引标识”框中, 选择排序字段,然后单击“添加”按 钮,将其转移到“选定字段”框中。
14
信息技术应用-2012级专
“报表向导”是创建报表最简单的方法,并且“报表向导”可以自动提供“ 报表设计器”的定制功能,通过问答形式确定或填写有关选项。“快速 报表”是创建简单布局报表的最快方法,但报表的数据源必须来自一个 数据表。用“报表设计器”创建报表,首先由“报表设计器”提供一个 空白报表布局,然后再在空白的报表布局中自由地定义和设计报表。在 表单中直接用命令代码建立报表,建立的报表比较灵活,担设计过程比 较复杂,并且需要反复的调试。
是表,也可以是视图、查询或自由表等;报表布局则 定义了报表的打印格式。
• 本讲主要介绍VFP报表文件的建立与输出方法。
2
信息技术应用-2012级专
创建报表步骤
① ② ③ ④ ⑤ 选取字段 确定创建的报表样式 创建报表布局 修改和定制报表布局 预览和打印报表。
报表文件格式:*.FRX。
每个报表文件还有.FRT文件扩展名的相关文件。 报表布局文件不是存储每个数据字段的值,而只是存储 一个特定报表的位置和格式信息。如果报表中数据源 字段值发生了变化,报表的值也会发生相应的变化。
VFP数据表生成Excel表格
VFP数据表生成Excel表格
吕岚
【期刊名称】《陕西铁路工程职业技术学院学报》
【年(卷),期】2007(5)1
【摘要】在许多应用系统中,需要将数据处理结果以报表形式打印出来.在Visual FoxPro中,报表设计器是进行可视化报表设计的唯一工具.报表文件可输出到文件中,但是该文件只能打印输出到打印机,无法直接预览查看.可以利用SQL语句和Excel快速产生数据统计表,并将数据送到Excel表格中,方便用户对报表再编辑.【总页数】3页(P59-61)
【作者】吕岚
【作者单位】陕西铁路工程职业技术学院,陕西渭南,714000
【正文语种】中文
【中图分类】TP3
【相关文献】
1.如何提高VFP中数据表的安全性
2.基于VFP6的数据表内容自动生成算法
3.VFP数据表加密与解密技术实现
4.VFP中数据表加密简单算法研究
5.Excel表格在VFP编程中的应用
因版权原因,仅展示原文概要,查看原文内容请购买。
VFP控制EXCEL的方法(终于找到了)
VFP控制EXCEL的方法(终于找到了)VFP控制EXCEL的常用方法oExl=CREATEOBJECT('Excel.application') oExl.Visible=.T.oExl.DefaultSaveFormat=39 oExl.SheetsInNewWorkbook=1oExl.Workbooks.Open(cXLS)oExl.WindowState=-4140 &&窗口最小化 oExl.WindowState=-4143 &&窗口正常化oExl.WindowState=-4147 &&窗口最大化 *------------------------------------------------------*&&页面设置oExl.ActiveSheet.PageSetup.PrintTitleRows=\&&打印标题oExl.ActiveSheet.PageSetup.Orientation=2 &&页面方向:1纵向/2横向*oExl.ActiveSheet.PageSetup.PaperSize=11 &&纸张尺寸:9-A4/11-A5oExl.ActiveSheet.PageSetup.TopMargin=0.8/0.035 &&顶边距oExl.ActiveSheet.PageSetup.BottomMargin=0.8/0.035 &&底边距oExl.ActiveSheet.PageSetup.LeftMargin=0 &&左边距oExl.ActiveSheet.PageSetup.RightMargin=0 &&右边距oExl.ActiveSheet.PageSetup.CenterHorizontally=.T. &&页面居中oExl.ActiveSheet.PageSetup.HeaderMargin=0.5/0.035oExl.ActiveSheet.PageSetup.FooterMargin=0.5/0.035oExl.ActiveSheet.PageSetup.LeftHeader=\表格\”9是字号”oExl.ActiveSheet.PageSetup.CenterHeader=\oExl.ActiveSheet.PageSetup.RightHeade r=\oExl.ActiveSheet.PageSetup.LeftFooter=\oExl.ActiveSheet.PageSetup.CenterFooter=\第&P页,共&N页\oExl.ActiveSheet.PageSetup.RightFooter=\制表人:'+代码+' 制表时间:\*------------------------------------------------------* &&整体格式设置oExl.ActiveSheet.Rows.Font.Size=9='宋体'oExl.ActiveSheet.Rows.RowHeight=0.5/0.035oExl.ActiveSheet.Rows.NumberFormatLocal=\红色]-0.00\oExl.ActiveSheet.Rows.VerticalAlignment=2 &&单元格内容垂直居中 *------------------------------------------------------* &&获取最大行号和最大列号 Local nMaxRow,nMaxColnMaxRow=edRange.Rows.CountnMaxCol=edRange.Columns.Count &&表头格式设置oExl.ActiveSheet.Rows(1).Font.Size=16oExl.ActiveSheet.Rows(1).Font.Bold=.T.oExl.ActiveSheet.Rows(1).RowHeight=1/0.035oExl.ActiveSheet.Rows(1).HorizontalAlignment=3oExl.ActiveSheet.Rows(2).HorizontalAlignment=3oExl.ActiveSheet.Rows(3).HorizontalAlignment=3oExl.ActiveSheet.Rows(3).Font.Bold=.T.oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+'1').MergeoExl.ActiveSheet.Range('A2:'+CHR(96+nMaxCol)+'2').Merge *------------------------------------------------------*&&条件格式隐藏0值edRange.FormatConditions.DeleteedRange.FormatConditions.Add(1,3,'0')edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色*------------------------------------------------------*oExl.ActiveSheet.Range('A1:B1').Interior.ColorIndex=6 *------------------------------------------------------*&&单元格底纹黄色oExl.ActiveSheet.Columns.AutoFit &&自动列宽oExl.ActiveSheet.Range(\ &&边框线*------------------------------------------------------*&&自动筛选IF !oExl.ActiveSheet.AutoFilterMode &&判断是否存在自动筛选oExl.ActiveSheet.Rows(3).Autofilter &&如果不存在自动筛选,则添加自动筛选 ENDIF*------------------------------------------------------* &&冻结窗格oExl.ActiveSheet.Range('D4').Select oExl.ActiveWindow.FreezePanes = .T.*------------------------------------------------------* *------------------------------------------------------*&&分类汇总Local Arry(1),nMaxRow,nMaxCol Arry(1)=5nMaxRow=edRange.Rows.CountnMaxCol=edRange.Columns.CountoExl.ActiveSheet.Range('A3:'+chr(96+nMaxCol)+alltrim(str(nMaxRow))).Subtotal(2 ,-4157,@Arry,.T.,.F.,.T.) &&按第2列分类汇总数组Arry保存的列 *------------------------------------------------------*1、对象的创建与关闭*******************************oExl=CREATEOBJECT('Excel.application') &&创建Excel对象oExl.SheetsInNewWorkbook=1 &&新建工作簿默认包含工作表个数oExl.Workbooks.Add &&新建工作簿,工作表个数由SheetsInNewWorkBooks属性指定oExl.Workbooks.Open(cXLS,3,.T.) &&打开指定工作簿(更新链接/只读打开)oExl.Workbooks.Open(cXLS, [UpdateLinks], [ReadOnly], [Format], [Password], [WriteResPassword], [IgnoreReadOnlyRecommended], [Origin], [Delimiter], [Editable], [Notify], [Converter], [AddToMru], [Local], [CorruptLoad])oExl.Worksheets(cSheet).Activate &&激活工作表Sheet3oExl.Worksheets(3).Activate &&激活(从左到右)第3个工作表oExl.WorkSheets.Count &&工作簿中工作表数 oExl.DefaultSaveFormat=39 &&默认格式Excel 5.0 oExl.DisplayAlerts=.F. &&不显示警告信息oExl.Visible=.T. &&显示Excel窗口 oExl.Visible=.F. &&不显示Excel窗口 oExl.Caption=\标题栏\ &&更改Excel标题栏oExl.WorkSheet(\ &&粘贴oExl.Quit &&退出Excel oExl.DisplayRecentFiles=.T.&&是否显示最近打开文档 oExl.RecentFiles.Maximum=4 &&历史最大纪录数erName=\ &&用户名 oExl.StandardFont=\宋体\ &&标准字体oExl.StandardFontSize=\ &&标准字体大小 oExl.DefaultFilePath=\ &&默认工作目录 oExl.EnableSound=False &&声音反馈 oExl.RollZoom=False &&智能鼠标缩放 oExl.TransitionMenuKey=\ &&Microsoft Office Excel菜单键oExl.ActiveWorkbook.Password=\oExl.ActiveWorkbook.WritePassword=\oExl.ActiveWorkbook.ReadOnlyRecommended=FalseoExl.ActiveWorkbook.SetPasswordEncryptionOptionsPasswordEncryptionProvider:=\_ PasswordEncryptionAlgorithm:=\ PasswordEncryptionKeyLength:=40 _ ,PasswordEncryptionFileProperties:=FalseIF oExl.ActiveWorkbook.FileFormat==39 &&格式为Excel 5.0工作簿 ENDIFoExl.ActiveWorkBook.SaveAs(FileName,FileFormat,PassWord,WriteResPassWord,ReadO nlyRecommended,CreateBackup) &&另存为 &&参数说明FileName 字符型,指定文件名 FileFormat 数值型,文件格式 -4143 MicrosoftOffice Excel 11 DBF4 39 Microsoft Excel 5.0/95 43 Microsoft Excel97-Excel2021 & 5.0/95 44 网页Html文件 -4158 文本文件(制表符分隔) PassWord 字符型,只读密码 WriteResPassWord 字符型,写密码ReadOnlyRecommended逻辑型,建议只读 CreateBackup 逻辑型,自动备份例如:oExl.ActiveWorkBook.SaveAs(\oExl.ActiveWorkbook.saved=.T. &&放弃存盘oExl.ActiveWorkbook.Save &&存盘(自动存盘不提问)oExl.Workbooks.close &&关闭工作簿3、单元格的设置*********************************** &&冻结窗格oExl.ActiveSheet.Range('D4').Select oExl.ActiveWindow.FreezePanes = .T.&&条件格式设定oExl.ActiveSheet.Range('A1:H18').FormatConditions.Add(Type,Operator,Formula1,Formula2) Type 类型(1单元格数值,2公式) Operator 操作符(1介于,2不介于,3等于,4不等于,5大于,6小于,7大于等于,8小于等于) Formula1 表达式1 Formula2 表达式2,操作符为1介于或2不介于才有效 &&条件格式例句:数值为0者,文字颜色白色edRange.FormatConditions.DeleteedRange.FormatConditions.Add(1,3,'0')edRange.FormatConditions(1).Font.ColorIndex=2&&文字白色&&编辑edRange.Copy &&拷贝整个工作表oExl.ActiveSheet.Range(\ &&拷贝指定区域 oExl.ActiveSheet.Columns(\ &&删除列 oExl.ActiveSheet.Columns(\ &&删除列oExl.ActiveSheet.Rows(1).Insert &&在第1行之前插入一行oExl.ActiveSheet.Columns(2).Insert &&在第2列之前插入一列oExl.ActiveSheet.Cells(1,2).Value=\ &&给单元格赋值oExl.ActiveSheet.Cells(2,2).Value=\ &&给单元格赋值oExl.ActiveSheet.Cells(1,4).ClearContents &&清除单元格公式oExl.ActiveSheet.Rows(18).PageBreak=1 &&在第18行之前插入分页符oExl.ActiveSheet.Columns(4).PageBreak=0 &&在第4列之前删除分页符oExl.ActiveSheet.Rows(3).AutoFilter &&自动筛选oExl.ActiveSheet.Cells(1,1).Delete(-4159) &&删除单元格 -4159 右边单元格左移-4162 下边单元格上移oExl.Selection.EntireRow.Delete &&所在行整行删除oExl.Selection.EntireColumn.Delete &&所在列整列删除oExl.ActiveSheet.Cells(1,1).Insert(-4142) &&插入单元格 -4142 活动单元格下移-4161 活动单元格右移oExl.ActiveSheet.Selection.EntireRow.Insert &&插入行oExl.ActiveSheet.Selection.EntireColumn.Insert &&插入列&&选择性粘贴oExl.ActiveSheet.Selection.PasteSpecial Paste:=xlPasteValues,Operation:=xlNone, SkipBlanks:=False, Transpose:=False Paste 粘贴数据:8列宽,11公式和数值格式,12数值与数值格式,-4104全部,-4123公式,-4163数值,-4122格式, Operation 运算符:-4142无,2加,3减,4乘,5除 SkipBlanks 跳过空白单元:逻辑型Transpose 转置:逻辑型-------------------------------------------------- &&排序成功例句:oExl.ActiveSheet.Range('A1:'+CHR(96+nMaxCol)+ALLTRIM(STR(nMaxRow))).Sort(oExl. ActiveSheet.Range(CHR(96+ASCAN(Arry,'原币金额'))+'2'),2,,,,,,1) &&按\原币金额\所在列降序排列,有标题oExl.ActiveSheet.Rows('1:28').Sort Key1:=Range(\ Key2:=Range(\Key3:=Range(\ Header:=xlYes, OrderCustom:=6, MatchCase:=True, Orientation:=xlTopToBottom, SortMethod:=xlStroke,DataOption1:=xlSortNormal, DataOption2:=xlSortNormal,感谢您的阅读,祝您生活愉快。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
O 引 言
的功能 , 更好 地提高 r程序的 应用性 。程序 首先生成一 个 E c l I x 象- lA p。 x e 的o 寸 O e p 以便对 其进行操 作。编程 中主要 E 使用C e tO j c ) r a e b e t( 函数,它可从类 定义 的应用程序 l创 l l 建对象,并将 O E L 对象引用赋给变量或数组 元素。在 V 1中 F 为 r直接控 ̄ E c l 首先使用V P 制相应的软件系统, j l xe , F编 将
摘
要: x e E c l是 目前运用鞍 多的办 软件. P是 面向中小 型企业的数据 库软件 . V F 本文 介绍 了利用V P F 程序实现制作Ec l xe
报表 的方法. 着重分析 了报 表制 怍过程 的难点 与关键方涪。 该技术可 以方便地制 怍各种 类型报表 ,增 强了软件的应用效果 。 关键词: 煤炭 管理信息系统; F 报表: X E ; L VP EC L O E 中图分类号 :T 3 1 1 Pl. 文献标识码 :A 文章编号 :l 7 一 7 2 ( 【】)— ¨ 8 O l 4 9 一 2]68 0 4 一 2 6 ( D
象 可视性和事件驱动等特点给 系统开发带来许多方便 . 符合 新 时代的应用设 计要求 。
1 设 计 思 路
基本数据存放在数据库中, 随后把用SL Q 命令统计生成后需 要传送的数据保留在棚应表中, 然后通过VPT xe, F#开Ecl 把
表头和表 中的数据传给 E c 1 x e ,由办公人员在工作表 中进行 后期处理 。以下结合笔者利用 、 P 9 0 开 发的煤炭管理信 。 . F
以煤炭信息管理系统 中的采购入库部分来说明报表制作 的过程 。该过程主要包括创 建对象、让 E c l x e 可视 、添加工 作 簿、选定工作表 、为单元格 添加数据等步骤 。 ( )创建 E c l 1 x e 表格
SE EC ’tmp x l L  ̄ c
计器, 但是复杂的表头, 表格边框设计等有不尽人意的地方。
( c o l o'C m u e S n e n n i e l n S h o f o p t r c. c a d E g n e‘ g, W h n n t t t o e h o o y u a 4 0 7 ) J e i u a I s i u e f T c n l g ,W h n 3 0 4
息系统分析制作Ecl xe报表, 而程序段均 已在WnosX, ~ 卜 idw P
V P 9 ,E c l 0 3 F .0 x e 2 0 环境 i 悯试通过 。 t
2 实现过程以及部分源代码
煤炭企业 中 存在着 日 数据量 大、价格波 动快 、涉及 常
面广等特点 。 利用E c 1 xe 处理数据 , 例如数据的查询以及多晕 选 择条件的汇总统计分析 , 同时要求每 H数据形成各类报表 , E cL x e 实现起来略显复杂 ;而V ] 制作报表 , F冲 虽然有报表设
Ab tc :E c 1 S a p p l r o f c o t a e a d V P i i e y u e e a i n l d a a e i1m d U n m 1 sa t x e i o u a f i e s f w r n F S a w d I s d r l t o a at b s r e i m a d s a 1
维普资讯
I p e e t x e R p r o m B s d n V P m I m n E c l e o t F r a e o F
童 瑾
Z an Ji h g “
( 武汉_ 丁程大学 计算机学院 ,武汉 4 0 7 ) 3 0 4
Ke wod: ̄ n g m n I f r a i n y t m o"C a j F R p r o m: E c 1 v r l a e e t n o m t o S s e f o l V P a eotFr x e
O j c n n n m e d n b e t I ki g a d E b d j g i
目 。 前 随着办公 自动化的普及 ,Ec1 为微软 Ofc xe 作 f ie 办 公系列的一个优秀 的电子表格处理软件,通俗简单 , 在兼
容性 、 公式运算 、 作界面 、 操 图等方而有着其独到的优势,
常应用于一般的数据和表格处理中。 F 是 一 VP 种关系数据库
管理系统 , 于其强大的数据处理能力及 良好的兼容性 , 由 使其 成 为数据库应用程序开发人 员钟爱的开发平台 , 良好的对 其
en er t pri es o s t day. Thi p per nt odu es s a i r c ho t i w o mpl me e el ep ’ fo m ro h e nt xc r oIt r th ug VF P, a e eci l s me nd sp aI y o d1 ic ti a ke me odS ff ul es nd y th of mpl me i e nti t f m ie n ng he or a ’ a a y d. T t hn ogi c n ze he ec ol es a acc mpli co e o sh nv ni ntl v ’ o t e e Y aii us yp re rt o po f rm。 an bo t p he o wa a li ati n d os u t s ft re pp c ef ct. o fe