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

在VFP中直接来控制Excel

在VFP中直接来控制Excel (转载)*!*VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。

比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。

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

下面就在开发VFP应用项目时对Excel的控制作一下介绍:oExcel=Createobject("Excel.application") &&创建Excel对象**对象属性oExcel.Visible=.T. &&显示Excel窗口oExcel.Caption="VFP应用程序调用Microsoft Excel" &&更改Excel标题栏oExcel.DisplayAlerts = .F. &&关闭提示和警告消息,运行结束后,应将本属性设置回 True 值oExcel.cells(1,4).Value=XM(XM为数据库字段名) &&给单元格赋值**Workbooks属性oExcel.Workbooks.Add &&添加新工作簿oExcel.Workbooks.Open("c:\temp\ll.xls") &&打开指定工作簿oExcel.Workbooks.Close &&关闭工作簿oExcel.Quit &&退出ExcelRelease oExcel &&只有释放对象变量, EXCEL进程才会完全关闭**Worksheets属性oExcel.Worksheets("sheet3").Activate &&设置第3个工作表为激活工作表oExcel.Worksheets("Sheet1").Rows(18).PageBreak=1 &&在第18行之前插入分页符oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial &&粘贴**ActiveWorkbook属性oExcel.ActiveWorkbook.SaveAs("c:\temp\22.xls") &&工作表另存为oExcel.ActiveWorkbook.saved=.T. &&放弃存盘,避免出现保存对话框oExcel.ActiveWorkbook.Save &&存盘oExcel.ActiveWorkbook.Close(.F.) &&关闭工作簿oExcel.ActiveWorkbook.Protect('密码',.T.,.T.) &&保护工作薄(第一个.T.:保护工作簿结构,第二个.T.:保护工作簿窗口)**ActiveSheet属性edRange.Copy &&拷贝整个工作表oExcel.ActiveSheet.PrintPreview &&打印预览工作表oExcel.ActiveSheet.PrintOut &&打印输出工作表oExcel.ActiveSheet.Protect('密码',.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.) &&保护工作表oExcel.ActiveSheet.Protection.AllowEditRanges.Add("区域3",oExcel.ActiveSheet.Range("A2:D5")) &&设置允许用户编辑区域**表格列属性oExcel.ActiveSheet.Columns(2).Insert &&在第2列之前插入一列oExcel.ActiveSheet.Columns(1).ColumnWidth=5 &&设置指定列的宽度(单位:字符个数)oExcel.ActiveSheet.Columns(4).PageBreak=0 &&在第4列之前删除分页符oExcel.ActiveSheet.Columns(1).Font.Bold=.T. &&设置整列字体为粗体**表格行属性oExcel.ActiveSheet.Rows(2).Insert &&在第2行之前插入一行oExcel.ActiveSheet.Rows(1).RowHeight=1 &&设置指定行的高度(单位:磅)(设定行高为 1磅, 1磅=0.035厘米)oExcel.ActiveSheet.Rows("50:100").RowHeight=1 &&设置第50行至100行的高度**表格范围属性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=分散对齐)oExcel.Range("A4:C4").WrapText =.F. &&文本自动换行oExcel.ActiveSheet.Range("A4:B5").Merge=.T. &&合并单元格oExcel.ActiveSheet.Range("A1:E2").Copy &&拷贝指定区域oExcel.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3 &&指定边框线宽度(Borders参数如下)oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1 &&设置四个边框线条的类型&&(其中Borders参数:1-左、2-右、3-顶、4-底、5-斜、6-斜/;LineStyle值:1与7-细实、2-细虚、4-点虚、9-双细实线)**页面设置WITH oExcel.ActiveSheet.PageSetup.CenterHeader="报表1" &&设置页眉.CenterHeader="&50报表1" &&设置页眉(字体大小),'&'后面的50可以自定义,表示字体的大小.CenterFooter="第&P页" &&设置页脚(LeftFoot:居左,CenterFooter:居中,RightFooter:居右).CenterFooter="&28第&P页共&N页" &&设置页脚(字体大小),'&'后面的28可以自定义,表示字体的大小.HeaderMargin=2/0.035 &&设置页眉到顶端边距为2厘米.FooterMargin=3/0.035 &&设置页脚到底边距为3厘米.TopMargin=2/0.035 &&设置顶边距为2厘米.BottomMargin=4/0.035 &&设置底边距为4厘米.LeftMargin=2/0.035 &&设置左边距为2厘米.RightMargin=2/0.035 &&设置右边距为2厘米.CenterHorizontally=.T. &&设置页面水平居中.CenterVertically=.T. &&设置页面垂直居中.Papersize=1 &&设置页面纸张大小(1-窄行8511 39-宽行1411 9:A4).Orientation=1 &&设置纸张方向(1-竖向,2-横向).PrintTitleRows="$1:$2" &&设置顶端标题行,(每页都打印行标头(每页顶部出现的单元格的行)) .PrintGridlines=.T. &&打印单元格网线.Zoom=75 &&设置缩放比例为75%ENDWITH**单元格设置WITH oExcel.ActiveSheet.Cells(1,1) &&第一行第一列单元格="黑体" &&字体名字.Font.Size=25 &&大小.Font.Italic=.T. &&为斜体(Bold-粗体).Value="数值" &&给单元格赋值.ClearContents &&清除单元格公式ENDWITH*以下为一些过程*检测当前目录是否有同名的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)If File(lcFileName)Delete File (lcFileName)EndifoExcel.ActiveWorkbook.SaveAs(lcFileName)EndifEndif*!*拷贝整个工作表(含格式)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列的值*!* 显示某个单元格的批注内容oExcel=Createobject("Excel.application")oExcel.Workbooks.Open("d:\TEST\testa.xls")oExcel.Visible=.T.?oExcel.Range("B5").Comment.Text &&显示B5单元格的批注内容oExcel.Workbooks.CloseoExcel.QuitRelease oExcel*!* 将当前工作表中的已用区域(只读)存入数组。

相关主题