当前位置:文档之家› 在VFP中直接来控制Excel

在VFP中直接来控制Excel

Example:SET DEFAULT TO c:\clearoleapp=createobject("excel.application")oleapp.visible=.t. && 显示Exceloleapp.workbooks.add**设单元格的值(报表标题):oleapp.cells(1,1).value="aaa"oleapp.cells(1,2).value="bbb"oleapp.cells(1,3).value="ccc"oleapp.cells(1,4).value="ddd"oleapp.cells(1,5).value="eee"**打开表并取得记录数USE c:\bank\data\zyb.dbf SHAREDjl=reccount()-1 &&记录数**将表中的记录数据放到Excel工作簿的单元格中for i=0 to jlgo i+1 &&第i+1条记录oleapp.cells(2+i,1).value=zyb.bholeapp.cells(2+i,2).value=zyb.xmoleapp.cells(2+i,3).value=zyb.kloleapp.cells(2+i,4).value=1+1endforoleapp.activeworkbook.saveas("C:\Documents and Settings\Administrator\桌面\KL.xls")* oleapp.activeworkbook.saveas(?)*********************************************************利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。

这就需要我们在VFP中直接来控制Excel。

下面就在开发VFP应用项目时对Excel的控制作一下介绍:1.创建Excel对象eole=CREATEOBJECT(′Excel.application′)2.添加新工作簿eole.Workbooks.add3.设置第3个工作表为激活工作表eole.Worksheets(″sheet3″).Activate4.打开指定工作簿eole.Workbooks.Open(″c:\temp\ll.x ls″)5.显示Excel窗口eole.visible=.t.6.更改Excel标题栏eole.Caption=″VFP应用程序调用Microsoft Excel″7.给单元格赋值eole.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)eole.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)eole.ActiveSheet.Rows(1).RowHeight=1/0.035(设定行高为1厘米,1磅=0.035厘米)10.在第18行之前插入分页符eole.Worksheets(″Sheet1″).Rows(18).PageBreak=111.在第4列之前删除分页符eole.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=313.设置四个边框线条的类型eole.ActiveSheet.Range(″b3:d3″).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉eole.ActiveSheet.PageSetup.CenterHeader=″报表1″15.设置页脚eole.ActiveSheet.PageSetup.CenterFooter=″第&P页″16.设置页眉到顶端边距为2厘米eole.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米eole.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米eole.ActiveSheet.PageSetup.TopMargin=2/0.03519.设置底边距为4厘米eole.ActiveSheet.PageSetup.BottomMargin=4/0.03520.设置左边距为2厘米veole.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米eole.ActiveSheet.PageSetup.RightMargin=2/0.03522.设置页面水平居中eole.ActiveSheet.PageSetup.CenterHorizontally=.t.23.设置页面垂直居中eole.ActiveSheet.PageSetup.CenterVertically=.t.24.设置页面纸张大小(1-窄行8 5 1139-宽行14 11)eole.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线eole.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表edRange.Copy27.拷贝指定区域eole.ActiveSheet.Range(″A1:E2″).Copy28.粘贴eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial29.在第2行之前插入一行eole.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列eole.ActiveSheet.Columns(2).Insert31.设置字体eole.ActiveSheet.Cells(2,1)=″黑体″32.设置字体大小eole.ActiveSheet.Cells(1,1).Font.Size=2533.设置字体为斜体eole.ActiveSheet.Cells(1,1).Font.Italic=.t.34.设置整列字体为粗体eole.ActiveSheet.Columns(1).Font.Bold=.t.35.清除单元格公式eole.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表eole.ActiveSheet.PrintPreview37.打印输出工作表eole.ActiveSheet.PrintOut38.工作表另为eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)39.放弃存盘eole.ActiveWorkbook.saved=.t.40.关闭工作簿eole.Workbooks.close41.退出Exceleole.quit以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel 97及中文Windows 98。

VFP调用EXCEL的补充方法用Visual Foxpro 设计用Excel表格的程序利用OLE Automation 设计Excel 应用程序实例说明:启动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:MyExcel=CreateObject('Excel.Application')MYEXCEL.VISIBLE=.T.MYEXCEL.WORKBOOKS.ADDMYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).V ALUE='姓名' MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,2).V ALUE='身份证'USE c:\bank\data\input.dbf EXCLUSIVEif isflock()=.f.=messagebox("文件[input.dbf] 无法锁定!"+CHR(13),47,"错误提示")elseR=2C=1GOTO TOPFOR I=1 TO 20MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C).V ALUE=姓名MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(R,C+1).V ALUE=身份证R=R+1SKIPENDFORclos dataendif调整单元格宽度:MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).columnwidth=30调整单元格对齐方式:MYEXCEL.ACTIVEWORKBOOK.SHEETS(1).CELLS(1,1).horizontalalig=11为默认方式,2为左对齐,3为中对齐,4为右对齐。

如何将数据存储:MYEXCEL.SA VE()*注:可以用Save(FileName)指定预存储文件名, 则可不用激活SA VE AS 窗口如何打印表格:MYEXCEL.ActiveWorkBook.PrintOut &&默认打印增个Sheet如何指定打印表格:MYEXCEL.ActiveWorkBook.PrintOut(1,1,1,.T.) &&默认打印增个Sheet PrintOut有四个参数A. 数值:,表示指定的工作簿中进行打印的Sheet 的开始编号B. 数值:,表示指定的工作簿中进行打印的Sheet 的结束编号C.打印分数.D.是否进行 Preview, .T.,预览, .F.打印如何产生统计图CURROW=MYEXCEL.ACTIVESHEET.ROWS.COUNT RANGESTRING='A1:'+'B'+ALLTRIM(STR(CURROW))MYEXCEL.RANGE(RANGESTRING).SELECTMYEXCEL.CHARTS.ADD结束EXCELMYEXCEL.QUITEXCEL.ActiveWindow.SelectedSheets.PrintPreview &&预览打印EXCEL.ActiveWorkbook.SaveAs("C:\My Documents\Book1.xls") &&另存为EXCEL.ActiveWorkbook.Close &&关闭一个工作表,如果有修改则提示EXCEL.ActiveWorkbook.Close(.t.) &&提示另存为EXCEL.ActiveWorkbook.Close(.f.) &&关闭一个工作表不用提示是否存盘。

相关主题