Visual Foxpro中如何实现对EXCEL表格的操作

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1VisualFoxpro中如何实现对EXCEL表格的操作VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:1.创建Excel对象oExcel=CREATEOBJECT(Excel.application)2.添加新工作簿oExcel.Workbooks.add3.设置第3个工作表为激活工作表oExcel.Worksheets(sheet3).Activate4.打开指定工作簿oExcel.Workbooks.Open(c:\temp\ll.xls)5.显示Excel窗口oExcel.visible=.t.6.更改Excel标题栏oExcel.Caption=VFP应用程序调用MicrosoftExcel7.给单元格赋值oExcel.cells(1,4).value=XM(XM为数据库字段名)8.设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns(1).ColumnWidth=59.设置指定行的高度(单位:磅)oExcel.ActiveSheet.Rows(1).RowHeight=1(设定行高为1磅,1磅=0.035厘米)oExcel.ActiveSheet.Rows(50:100).RowHeight=1&&设置第50行至100行的高度10.在第18行之前插入分页符oExcel.Worksheets(Sheet1).Rows(18).PageBreak=111.在第4列之前删除分页符oExcel.ActiveSheet.Columns(4).PageBreak=012.指定边框线宽度(Borders参数如下)ole.ActiveSheet.Range(b3:d3).Borders(2).Weight=313.设置四个边框线条的类型oExcel.ActiveSheet.Range(b3:d3).Borders(2).LineStyle=1(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)14.设置页眉oExcel.ActiveSheet.PageSetup.CenterHeader=报表114.设置页眉(字体大小)oExcel.ActiveSheet.PageSetup.CenterHeader=&50报表1&&'&'后面的50可以自定义,表示字体的大小15.设置页脚oExcel.ActiveSheet.PageSetup.CenterFooter=第&P页15.设置页脚(字体大小)oExcel.ActiveSheet.PageSetup.CenterFooter=&28第&P页&&'&'后面的28可以自定义,表示字体的大小16.设置页眉到顶端边距为2厘米oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.03517.设置页脚到底边距为3厘米oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.03518.设置顶边距为2厘米oExcel.ActiveSheet.PageSetup.TopMargin=2/0.03519.设置底边距为4厘米oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.03520.设置左边距为2厘米oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.03521.设置右边距为2厘米oExcel.ActiveSheet.PageSetup.RightMargin=2/0.03522.设置页面水平居中oExcel.ActiveSheet.PageSetup.CenterHorizontally=.t.23.设置页面垂直居中oExcel.ActiveSheet.PageSetup.CenterVertically=.t.24.设置页面纸张大小(1-窄行851139-宽行14119:A4)oExcel.ActiveSheet.PageSetup.PaperSize=125.打印单元格网线oExcel.ActiveSheet.PageSetup.PrintGridlines=.t.26.拷贝整个工作表oExcel.ActiveSheet.UsedRange.Copy27.拷贝指定区域oExcel.ActiveSheet.Range(A1:E2).Copy28.粘贴oExcel.WorkSheet(Sheet2).Range(A1).PasteSpecial29.在第2行之前插入一行oExcel.ActiveSheet.Rows(2).Insert30.在第2列之前插入一列oExcel.ActiveSheet.Columns(2).Insert31.设置字体oExcel.ActiveSheet.Cells(2,1).Font.Name=黑体32.设置字体大小oExcel.ActiveSheet.Cells(1,1).Font.Size=2533.设置字体为斜体oExcel.ActiveSheet.Cells(1,1).Font.Italic=.t.234.设置整列字体为粗体oExcel.ActiveSheet.Columns(1).Font.Bold=.t.35.清除单元格公式oExcel.ActiveSheet.Cells(1,4).ClearContents36.打印预览工作表oExcel.ActiveSheet.PrintPreview37.打印输出工作表oExcel.ActiveSheet.PrintOut38.oExcel.CommandBars(1).Controls(1).accChild(18).Execute&&打印(菜单序号18为Excel2003的‘打印’项)&&不同版本Excel的菜单序号可以通过以下程序取得*(需要在VFP7.0以上运行)oXls=GETOBJECT(,excel.sheet)XlApp=oXLS.APPLICATIONXlSheet=XlApp.ActiveSheetbars=xlapp.CommandBars.COUNTSTR=''FORi=1TObarsSTR=STR+CHR(13)+ALLTRIM(STR(i))+'、'+xlapp.CommandBars(i).accName+'(NAME:'+xlapp.CommandBars(i).NAME+'INDEX:'+ALLTRIM(STR(xlapp.CommandBars(i).INDEX))+')'bars2=xlapp.commandbars(i).accChildCountFORj=1TObars2TRYobj=xlapp.commandbars(i).CONTROLS(j)STR=STR+CHR(13)+''+ALLTRIM(STR(j))+'、'+xlapp.commandbars(i).CONTROLS(j).accname+'(ID:'+ALLTRIM(STR(xlapp.CommandBars(i).CONTROLS(j).ID))+')'FORk=1TOobj.accChildCountTRYIFNOTEMPTY(obj.CONTROLS(k).accname)STR=STR+CHR(13)+''+ALLTRIM(STR(k))+'、'+obj.CONTROLS(k).accName+'(ID:'+ALLTRIM(STR(obj.CONTROLS(k).ID))+')'ENDIFCATCHEXITENDTRYENDFORCATCHEXITENDTRYENDFORWAITWINDOWSALLTRIM(STR(i))+'/'+ALLTRIM(STR(bars))+''+STR(i/bars*100,10,2)+'%'NOWAITENDFORSAVETOXLS.txtALLLIKESTRMODIFYCOMMANDXLS.txtRETURN39.工作表另存为oExcel.ActiveWorkbook.SaveAs(c:\temp\22.xls)检测当前目录是否有同名的EXCEL表,如果有先删除,再另存IF!FILE(SYS(5)+CURDIR()+result.xls)oExcel.ActiveWorkbook.SaveAs(SYS(5)+CURDIR()+result.xls)ELSElcFileName=loExcel.GetSaveAsFilename(result,Excel(*.xls),*.xls)IF!EMPTY(lcFileName)IFFILE(lcFileName)DELETEFILE(lcFileName)ENDIFoExcel.ActiveWorkbook.SaveAs(lcFileName)ENDIFENDIF40.放弃存盘&&避免出现保存对话框oExcel.ActiveWorkbook.saved=.t.41.存盘oExcel.ActiveWorkbook.save42.关闭工作簿oExcel.Workbooks.close43.退出ExceloExcel.quitRELEASEoExcel&&只有释放对象变量,EXCEL进程才会完全关闭44.合并单元格oExcel.ActiveSheet.Range(A4:B5).MergeCells=.t.45.下列设置大家自己理解Withcrfole.ActiveSheet.PageSetup.LeftHeader=chr(13)+左页眉3.CenterHeader=中页眉.RightHeader=右页眉.LeftFooter=左页脚.CenterFooter=中页脚.RightFooter=右页脚.orientation=1&&1竖排,2横排EndWithWithcrfole.Range(A4:C4).MergeCells=.t..WrapText=.f..Orientation=0.AddIndent=.f..ShrinkToFit=.f.EndWith46.文本对齐oExcel.range(A4:c4).HorizontalAlignment=1&&水平(1-默认、2-靠左、3-居中、4-靠右、5-填充、6=两端对齐、7=跨列居中、8=分散对齐)oExcel.range(A4:c4).VerticalAlignment=2&&垂直(1=靠上、2=居中、3=靠下、4=两端对齐、5=分散对齐)47.拷贝整个工作表(含格式)oExcel.activesheet.cells.copy&&拷贝oExcel.sheets(1).select&&选择第一工作表oExcel.ActiveSheet.Paste&&粘贴oExcel.ActiveSheet.Cells(3,4).value&&ActiveSheet为当前的Sheet工作薄名字,Cells(3,4).value为第3行第4列的值以上控制调用语句在中文VFP5.0企业版下运行通过,运行环境为Excel97及中文Windows9848.显示某个单元格的批注内容oExcel=CREATEOBJECT(Excel.application)oExcel.Workbooks.OPEN(d:\TEST\testa.xls)oExcel.VISIBLE=.T.?oExcel.Range(B5).Comment.Text&&显示B5单元格的批注内容oExcel.Workbooks.CLOSEoExcel.QUITRELEASEoExcel49.oExcel.ActiveSheet.PageSetup.PrintTitleRows=$1:$1&&每页都打印行标头(每页顶部出现的单元

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功