

下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、VFP数据导出到EXCEL技术我们都知道在EXCEL中有很多很多的计算公式、灵活多变的计算方式、方 便快捷的图表处理、 和功能强大的VBA语言,可以说EXCEL可能是最好用的 表格处理软件。我敢说:微软的产品中大概就EXCEL最好!但是,怎样用Foxpro快速产生统计表,并将数据送到Excel表格中,从 而代替Foxpro的报表工具呢?我们大家都知道,在Visual Foxpro 3.0及以后版本中提供了一个调用Ole Automation的函数CREATEOBJECT用该函数可以让Visual Foxpro很方便的 和其它可以提供OleAutomation服务的程序进行通讯。而Excel更是
2、一个标 准的Ole Automation服务器程序,我们可以在前端将数据传送到后端的Excel服务程序,用后端服务程序进行表格处理,从而弥补Visual Foxpro的不足。由于历史原因,我们作报表都习惯用Total、Count、Sum或者直接在报表 中工具中计算,速度最快的大概也就是Total了,但不知道还有多少人还在坚 持使用Total命令进行计算,有没有更好的计算方法呢?当然有啦!我在实际 使用中积累有一定的经验但愿能给各位起到小小的启发。假设有一表:Table1是一个人员档案,里面的表结构如下: 字段名 类型及长度编号C,2部门C,10姓名C,10性别C,2出生日期D职务C,10文化程
3、度C,10内容大概如下编号部门姓名性别出生日期职务文化程度1工程部张三男1971-01-11工程师大学本科2销售部李四男1967-02-23经理大学本科3工程部王武1954-03-14技术员大学专科4总经理室赵洁雅女1975-04-05秘书硕士研究生5销售部 1977-05-09销售经理高中6工程部大文1969-03-30总工程师大学专科7销售部1961-10-10销售经理大学专科8总经理室庄稼1961-10-10总经理大学专科我不过是举例说明而已。我不知道你们在使用SQL语句时有没有用使用函数的习惯,反正我是相 当愿意在SQL中使用函数, 我认为使用函数的SQL语句虽然语句长一点, 但是 可
4、以让你的程序看起来更清晰、简洁。说道这里我要感谢当初发明出IIF函数那位高人,要没有他(她)我也没有 机会在这里罗嗦这么久,在后面提到的快速产生统计表中将大量的运用IIF函 数。也许你会觉得奇怪,你统计的时候用那么多IIF干吗?别急,下面就让我 慢慢的告诉你。看看我们前面描述的表,我们可能要统计各个部门的“性别丨职务丨文化程 度”等的分布情况,简单一点我给画了一个表个出来,可能表格更能说明白:各部门人员分布情况表单位:人部门 丨 男丨 女丨 本科 丨 专科丨技术人员丨管理人员丨秘书工程部丨丨丨丨丨I销售部丨丨丨丨丨I总经理室丨IIIIIIIIIIIIIIIII上面这张表说复杂也不复杂, 但是用
5、常给的处理方法可能也要耗掉我们不少 的时间,因为你不得不针对不同的项目进行单独反复的计算, 可能还要生成一大 堆的临时表真烦! 下面的计算公司可让你轻松完成上面的表格, 当然程序还是要 写的不可能什么也不动不想就能达到的,立即输入下列程序: 第一步:转换Select部门,;iif(性别=男,1,0) as男,;iif(性别=女,1,0) as女,;iif(文化程度=大学本科,1,0) as大学本科,;iif(文化程度=大学专科,1,0) as大学专科,;iif(inlist(职务,工程师,技术员,总工程师),1,0) as技术人员,;iif(inlist(职务,总经理,经理,销售经理),1,0
6、) as管理人员,;iif(inlist(职务,总经理,经理,销售经理),1,0) as管理人员,;iif(inlist(职务,秘书),1,0) as秘书;from table into cursor query1第二步:转换并计算Select部门as部门,;sum男)as男,;sum女)as女,;sum(大学本科)as大学本科,;TABLE1.DBF当然实际的数据应该比这里多很多,要不还用统计干吗,sum大学专科)as大学专科,;sum技术人员)as技术人员,;sum(管理人员)as管理人员,;sum(管理人员)as管理人员,;sum(秘书)as秘书;from query1 into cur
7、sor query1;group by部门不要以为我把“from query1 into cursor query1”写错了,这样写的语句 确实可以使用。到这一步,统计表就计算出来了,不信用BROWS看看。往下面我们应该说 说怎样把现在统计出的数据输出到EXCEL中了(当然什么样子的数据都可以)首先用CreateObject函数建立一个Excel automation对象,程序如下:local excel,odefine windows WaitWin at 0,0 size 10,60 system;font times new roman,12;title 提示 close float z
8、oom &用于处理提示信息的窗口move windows waitWin centeracti windows waitwinset color to w+/nclearexcel=createobject(excel.application)if type(excel)=U &未能产生EXCEL寸象? 启动EXCEL失败.release windows WaitWinreturnendifReportTitle=XXXX公司人员分布情况ExcelFile=xls1.xls excel.caption=ReportTitel select query1 if not file(
9、ExcelFile)export to (ExcelFile) type xlsendifexcel.workbooks.open(ExcelFile)o=excel.activeworkbook.activesheet &用寸象代替这么长的一串字o.cells(1,1).value=ReportTitle第一行是标题,故从第二行开始scan for recno()1 &每一行?正在将数据转换到Excel表格中.,recno()for i=1 to fcount() &每一列fld=field(i)if type(fld)=C&如果字段太宽,Excel可能不能正
10、确接受数据o.cells(recno()+3,i).value=trim(&fld)elseo.cells(recno()+3,i).value=&fldendifendforendscano.cells(1,1).selectexcel.ActiveWindow.windowstate=2 excel.ActiveWorkbook.save() excel.visible=.t.clearstartTime=time()set cursor off*等待Excel处理完毕后再继续*do while .t.1,4 say 已启动后台Excel表格处理程序,处理中.2,4 say
11、 Ctrl+End继续处理.4,4 say 开始时间:?starttime5,4 say 现在时间:?time()&VFP会在此等待,除非你从EXCEL中退出或按下Ctrl+End键if inkey(0.5)=23 or type()=Uexitendifenddoset cursor onrelease o,excelrelease FindWindow?处理完毕.=inkey(0.5)release windows WaitWinend noteVFP调用EXCELS补充方法佳帆网站工作室 大文 下面是我使用VFP CALL EXCE啲部分例子:这是本人从书本上抄的片断
12、和我的小小经验,可以让你很方便的在VFP中调用EXCEL所有的例程我都试验过。用Visual Foxpro设计用Excel表格的程序 利用OLE Automation设计Excel应用程序Excel支持的对象说明:(a) VBA对象:对象名称 意义Application Excel应用程序对象WorkBooks Excel活页薄对象(b)所使用的Method对象名称Method执行意义Application Cells设定或传回来某个网格的内容Range传回或设定某一个范围的网格Charts传回或设定活页簿的单一统计表Quit结束Excel ApplicationSave激活存储文件对话框Wo
13、rkBooks Add新增一个工作簿Charts Add新增一个统计图(c)所使用的Property对象名称Property设定意义Application Visible是否现实再SCREENt .T. , .F.Value传回或者设定存储文件的内容ActiveSheet回应Excel Application执行工作表对象实例说明:启动Excel:MyExcel=CreateObject(Excel.Application) &建立Excel对象MyExcel.Visible=.T.&让Excel对象再屏幕上显示出来如何增加工作簿:MyExcel.WorkBooks.Add &
14、amp;在Excel对象中增加一份工作簿(WorkBook)如何在工作簿中增加Sheet(工作表)MyExcel.Sheets.Add &增加工作表(在当前工作簿中) 如何删除工作表MyExcel.ActiveWorkBooks.Sheets(1).Delete&把工作簿中的BOO(K 1) 删除 向指定的工作簿中的工作表(Sheet)中存储数据*Excel.application Object*Excel.application.ActiveWorkBook Property*WorkBOoks Object*WorkBOoks Object的Add Method.*Shee
15、ts对象*Sheets(Index)对象指定索引工作表*Excel.Application对象的Cells Method结合Value属性Example:CLEAR ALLSET PATH TO SYS(2004)+SAMPLESDATEUSE CUSTOMERMYEXCEL=CREATEOBJEXT(EXCEL.APPLICATION)MYEXCEL.VISIBLE=.T.MYEXCEL.WORKBOOKS.ADDMYEXCEL.ACTIVEW0RKB00K.SHEETS(1).CELLS(1,1).VA客户编号MYEXCEL.ACTIVEW0RKB00K.SHEETS(1).CELLS(1
16、,2).VAI公司行号SELECT CUST0MERR=2C=1G0T0 T0PF0R I=1 T0 20MYEXCEL.ACTIVEW0RKB00K.SHEETS(1).CELLS(R,C).VALUE=CUST0MER.CUST_IDMYEXCEL.ACTIVEW0RKB00K.SHEETS(1).CELLS(R,C+1).VALUE=CUST0MER.C0MPANYR=R+1SKIPENDF0R调整单元格宽度:MYEXCEL.ACTIVEW0RKB00K.SHEETS(1).CELLS(1,1).columnwidth=30调整单元格对齐方式:MYEXCEL.ACTIVEW0RKB00K
17、.SHEETS(1).CELLS(1,1).horizontalalig=11为默认方式,2为左对齐,3为中对齐,4为右对齐。如何将数据存储:MYEXCEL.SAVE()注:可以用Save(FileName)指定预存储文件名,则可不用激活SAVE AS窗口如何打印表格:MYEXCEL.ActiveWorkBook.Print0ut &默认打印增个Sheet如何指定打印表格:MYEXCEL.ActiveWorkBook.Print0ut(1,1,1,.T.) &默认打印增个SheetPrint0ut有四个参数A.数值:,表示指定的工作簿中进行打印的Sheet的开始编号B.数值:,表示指定的工作簿中进行打印的Sheet的结束编号C.打印分数D.是否进行Preview, .T.,预览,.F.打印如何产生统计图CURROW=MYEXCEL.ACTIVESHEET.ROWS.COUNTRANGESTRING=A1:+B+ALLTRIM(STR(CURROW)MYEXCEL.RANGE(RANGESTRING).SELECTMYEXCEL.CHARTS.ADD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省郑州市2025届高三下学期二模试题 英语 含解析
- 球馆火灾应急专项预案(3篇)
- 行政管理复习提纲试题与答案
- 银鸽火灾应急预案(3篇)
- 制定火灾应急处置预案(3篇)
- 法学概论考试中的解决方案与应对策略与试题与答案
- 运输车队火灾应急预案(3篇)
- 2025年IT行业的未来机遇试题及答案
- 网络管理员考试全局分析技巧试题及答案
- 软件设计师考试记忆策略试题及答案
- 湖北省武汉市汉阳区2023~2023学年第二学期四年级英语期末调研测试试题(PDF版含答案及听力原文无音频)
- CPK计算模板(双边)
- 高中语文第4单元家乡文化生活4.3参与家乡文化建设课时作业部编版必修上册
- 《企业风险管理-战略与绩效整合》执行摘要(2017-中文版)【2022-雷泽佳译】
- 桐庐县2023年三下数学期末综合测试试题含解析
- 钢质防火门安装施工工艺
- 大学生创新创业基础(广西师范大学)智慧树知到答案章节测试2023年
- 雷雨第四幕完整版
- Proworks消防控制室图形显示装置用户手册要点
- 射频指标及测试方法
- GB/T 23321-2009纺织品防水性水平喷射淋雨试验
评论
0/150
提交评论