首页 VFP数据导出到EXCEL技术

VFP数据导出到EXCEL技术

举报
开通vip

VFP数据导出到EXCEL技术VFP数据导出到EXCEL技术VFP数据导出到EXCEL技术我们都知道在EXCEL中有很多很多的计算公式、灵活多变的计算方式、方便快捷的图表处理、和功能强大的VBA语言,可以说EXCEL可能是最好用的表格处理软件。我敢说:微软的产品中大概就EXCEL最好!但是,怎样用Foxpro快速产生统计表,并将数据送到Excel表格中,从而代替Foxpro的报表工具呢?我们大家都知道,在VisualFoxpro3.0及以后版本中提供了一个调用OleAutomation的函数CREATEOBJECT,用该函数可以让VisualF...

VFP数据导出到EXCEL技术
VFP数据导出到EXCEL技术VFP数据导出到EXCEL技术我们都知道在EXCEL中有很多很多的计算公式、灵活多变的计算方式、方便快捷的图表处理、和功能强大的VBA语言,可以说EXCEL可能是最好用的 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 处理软件。我敢说:微软的产品中大概就EXCEL最好!但是,怎样用Foxpro快速产生统计表,并将数据送到Excel表格中,从而代替Foxpro的报表工具呢?我们大家都知道,在VisualFoxpro3.0及以后版本中提供了一个调用OleAutomation的函数CREATEOBJECT,用该函数可以让VisualFoxpro很方便的和其它可以提供OleAutomation服务的程序进行通讯。而Excel更是一个 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的OleAutomation服务器程序,我们可以在前端将数据传送到后端的Excel服务程序,用后端服务程序进行表格处理,从而弥补VisualFoxpro的不足。由于历史原因,我们作报表都习惯用Total、Count、Sum或者直接在报表中工具中计算,速度最快的大概也就是Total了,但不知道还有多少人还在坚持使用Total命令进行计算,有没有更好的计算方法呢?当然有啦!我在实际使用中积累有一定的经验但愿能给各位起到小小的启发。假设有一表:Table1是一个人员档案,里面的表结构如下:字段名一一类型及长度编号C,2部门C,10姓名C,10性别C,2出生日期D职务C,10文化程度C,10内容大概如下TABLE1.DBF编号部门姓名性别出生日期职务文化程度1工程部张三男1971-01-11工程师大学本科2销售部李四男1967-02-23经理大学本科3工程部王武1954-03-14技术员大学专科4总经理室赵洁雅女1975-04-05秘 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 硕士研究生5销售部・.1977-05-09销售经理高中6工程部大文1969-03-30总工程师大学专科7销售部・.1961-10-10销售经理大学专科8总经理室庄稼1961-10-10总经理大学专科当然实际的数据应该比这里多很多,要不还用统计干吗,我不过是举例说明而已。我不知道你们在使用SQL语句时有没有用使用函数的习惯,反正我是相当愿意在SQL中使用函数,我认为使用函数的SQL语句虽然语句长一点,但是可以让你的程序看起来更清晰、简洁。说道这里我要感谢当初发明出IIF函数那位高人,要没有他(她)我也没有机会在这里罗嗦这么久,在后面提到的快速产生统计表中将大量的运用IIF函数。也许你会觉得奇怪,你统计的时候用那么多IIF干吗?别急,下面就让我慢慢的告诉你。看看我们前面描述的表,我们可能要统计各个部门的“性别I职务I文化程度”等的分布情况,简单一点我给画了一个表个出来,可能表格更能说明白:各部门人员分布情况表单位:人部门I男1女1本科I专科I技术人员I管理人员I秘书工程部IIIIIII销售部IIIIIII总经理室IIIIIIIIIIIIIIIIIIIII上面这张表说复杂也不复杂,但是用常给的处理方法可能也要耗掉我们不少的时间,因为你不得不针对不同的项目进行单独反复的计算,可能还要生成一大堆的临时表真烦!下面的计算公司可让你轻松完成上面的表格,当然程序还是要写的不可能什么也不动不想就能达到的,立即输入下列程序:第一步:转换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)as管理人员,;iif(inlist(职务,'总经理','经理','销售经理'),1,0)as管理人员,;iif(inlist(职务,'秘书'),1,0)as秘书;fromtableintocursorquery1第二步:转换并计算Select部门as部门,;sum(男)as男,;sum(女)as女,;sum(大学本科)as大学本科,;sum(大学专科)as大学专科,;sum(技术人员)as技术人员,;sum(管理人员)as管理人员,;sum(管理人员)as管理人员,;sum(秘书)as秘书;fromquerylintocursorqueryl;groupby部门不要以为我把“fromquery1intocursorquery1”写错了,这样写的语句确实可以使用。到这一步,统计表就计算出来了,不信用BROWSE看看。往下面我们应该说说怎样把现在统计出的数据输出到EXCEL中了(当然什么样子的数据都可以)。首先用CreateObject函数建立一个Excelautomation对象,程序如下:localexcel,。definewindowsWaitWinat0,0size10,60system;font'timesnewroman',12;title'提示'closefloatzoom&;&;用于处理提示信息的窗口movewindowswaitWincenteractiwindowswaitwinsetcolortow+/nclearexcel=createobject('excel.application')iftype('excel')='U'&&未能产生EXCEL对象'启动EXCEL失败...’releasewindowsWaitWinreturnendifReportTitle='XXXX公司人员分布情况’ExcelFile="xls1.xls”excel.caption=ReportTitelselectquery1ifnotfile(ExcelFile)exportto(ExcelFile)typexlsendifexcel.workbooks.open(ExcelFile)o=excel.activeworkbook.activesheet&&用对象代替这么长的一串字o.cells(1,1).value=ReportTitle**第一行是标题,故从第二行开始scanforrecno()>1&&每一彳亍'正在将数据转换到Excel表格中...',recno()fori=1tofcount()&&每一歹列fld=field(i)iftype(fld)='C'&&如果字段太宽,Excel可能不能正确接受数据o.cells(recno()+3,i).value=trim(&fld)elseo.cells(recno()+3,i).value=&fldendifendforendscano.cells(1,1).selectexcel.ActiveWindow.windowstate=2excel.ActiveWorkbook.save()excel.visible=.t.clearstartTime=time()setcursoroff**等待Excel处理完毕后再继续*dowhile.t.@1,4say'已启动后台Excel表格处理程序,处理中...’@2,4say'Ctrl+End继续处理...’@4,4say'开始时间:’starttime@5,4say'现在时间:’time()&&VFP会在此等待,除非你从EXCEL中退出或按下Ctrl+End键ifinkey(0.5)=23ortype('o.name')='U'exitendifenddosetcursoronreleaseo,excelreleaseFindWindow'处理完毕...’=inkey(0.5)releasewindowsWaitWinendnoteVFP调用EXCEL的补充方法佳帆网站工作室大文下面是我使用VFPCALLEXCEL的部分例子:这是本人从书本上抄的片断和我的小小经验,可以让你很方便的在VFP中调用EXCEL,所有的例程我都试验过。用VisualFoxpro 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 用Excel表格的程序利用OLEAutomation设计Excel应用程序Excel支持的对象说明:VBA对象:对象名称意义ApplicationExcel应用程序对象WorkBooksExcel活页薄对象所使用的Method对象名称Method执行意义ApplicationCells设定或传回来某个网格的内容Range传回或设定某一个范围的网格Charts传回或设定活页簿的单一统计表Quit结束ExcelApplicationSave激活存储文件对话框WorkBooksAdd新增一个工作簿ChartsAdd新增一个统计图所使用的Property对象名称Property设定意义ApplicationVisible是否现实再SCREEN上.T.,.F.Value传回或者设定存储文件的内容ActiveSheet回应ExcelApplication执行工作表对象实例说明:启动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.applicationObject*Excel.application.ActiveWorkBookProperty*WorkBOoksObject*WorkBOoksObject的AddMethod.*Sheets对象*Sheets(Index)对象指定索引工作表*Excel.Application对象的CellsMethod结合Value属性Example:CLEARALLSETPATHTOSYS(2004)+'SAMPLESDATE'USECUSTOMERMYEXCEL=CREATEOBJEXT('EXCEL.APPLICATION')MYEXCEL.VISIBLE=.T.MYEXCEL.WORKBOOKS.ADDMYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).VALUE='客户编号’MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,2).VALUE='公司行号'SELECTCUSTOMERR=2C=1GOTOTOPFORI=1TO20MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C).VALUE=CUSTOMER.CUST_IDMYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C+1).VALUE=CUSTOMER.COMPANYR=R+1SKIPENDFOR调整单元格宽度:MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).columnwidth=30调整单元格对齐方式:MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).horizontalalig=11为默认方式,2为左对齐,3为中对齐,4为右对齐。如何将数据存储:MYEXCEL.SAVE()注:可以用Save(FileName)指定预存储文件名,则可不用激活SAVEAS窗口如何打印表格:MYEXCEL.ActiveWorkBook.PrintOut&&默认打印增个Sheet如何指定打印表格:MYEXCEL.ActiveWorkBook.PrintOut(1,1,1,.T.)&&默认打印增个SheetPrintOut有四个参数数值:,表示指定的工作簿中进行打印的Sheet的开始编号数值:,表示指定的工作簿中进行打印的Sheet的结束编号打印分数.是否进行Preview,.T.,预览,.F.打印如何产生统计图CURROW=MYEXCEL.ACTIVESHEET.ROWS.COUNTRANGESTRING='A1:'+'B'+ALLTRIM(STR(CURROW))MYEXCEL.RANGE(RANGESTRING).SELECTMYEXCEL.CHARTS.ADD结束EXCELMYEXCEL.QUITEXCEL.ActiveWindow.SelectedSheets.PrintPreview&&预览打印EXCEL.ActiveWorkbook.SaveAs("C:MyDocumentsBook1.xls")&&另存为EXCEL.ActiveWorkbook.Close&&关闭一个工作表,如果有修改则提示EXCEL.ActiveWorkbook.Close(.t.)&&提示另存为EXCEL.ActiveWorkbook.Close(.f.)&&关闭一个工作表不用提示是否存盘
本文档为【VFP数据导出到EXCEL技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
无敌大招奥特曼
暂无简介~
格式:doc
大小:13KB
软件:Word
页数:14
分类:
上传时间:2023-05-02
浏览量:2