VFP和Excel都可以用来进行处理数据库表格,如果巧妙地将二者的优点结合起来,将会大大方便我们的工作。比如我们可以利用VFP进行处理数据,而利用Excel的预览打印功能进行报表打印。这就需要我们在VFP中直接来控制Excel。下面就在开发VFP应用项目时对Excel的控制作一下介绍:
*!* 1.创建Excel对象
oExcel=Createobject("Excel.application")
*!* 2.添加新工作簿
oExcel.Workbooks.Add
*!* 3.设置第3个工作表为激活工作表
oExcel.Worksheets("sheet3").Activate
*!* 4.打开指定工作簿
oExcel.Workbooks.Open("c:/temp/ll.xls")
*!* 5.显示Excel窗口
oExcel.Visible=.T.
*!* 6.更改Excel标题栏
oExcel.Caption="VFP应用程序调用Microsoft Excel"
*!* 7.给单元格赋值
oExcel.cells(1,4).Value=XM(XM为数据库字段名)
*!* 8.设置指定列的宽度(单位:字符个数)
oExcel.ActiveSheet.Columns(1).ColumnWidth=5
*!* 9.设置指定行的高度(单位:磅)
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=1
*!* 11.在第4列之前删除分页符
oExcel.ActiveSheet.Columns(4).PageBreak=0
*!* 12.指定边框线宽度(Borders参数如下)
ole.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3
*!* 13.设置四个边框线条的类型
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="报表1"
*!* 15.设置页眉(字体大小)
oExcel.ActiveSheet.PageSetup.CenterHeader="&50报表1" &&'&'后面的50可以自定义,表示字体的大小
*!* 16.设置页脚
oExcel.ActiveSheet.PageSetup.CenterFooter="第&P页"
*!* 17.设置页脚(字体大小)
oExcel.ActiveSheet.PageSetup.CenterFooter="&28第&P页" &&'&'后面的28可以自定义,表示字体的大小
*!* 18.设置页眉到顶端边距为2厘米
oExcel.ActiveSheet.PageSetup.HeaderMargin=2/0.035
*!* 19.设置页脚到底边距为3厘米
oExcel.ActiveSheet.PageSetup.FooterMargin=3/0.035
*!* 20.设置顶边距为2厘米
oExcel.ActiveSheet.PageSetup.TopMargin=2/0.035
*!* 21.设置底边距为4厘米
oExcel.ActiveSheet.PageSetup.BottomMargin=4/0.035
*!* 22.设置左边距为2厘米
oExcel.ActiveSheet.PageSetup.LeftMargin=2/0.035
*!* 23.设置右边距为2厘米
oExcel.ActiveSheet.PageSetup.RightMargin=2/0.035
*!* 24.设置页面水平居中
oExcel.ActiveSheet.PageSetup.CenterHorizontally=.T.
*!* 25.设置页面垂直居中
oExcel.ActiveSheet.PageSetup.CenterVertically=.T.
*!* 26.设置页面纸张大小(1-窄行8?5?11 39-宽行14?11 9:A4)
oExcel.ActiveSheet.PageSetup.Papersize=1
*!* 27.打印单元格网线
oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.
*!* 28.拷贝整个工作表
oExcel.ActiveSheet.UsedRange.Copy
*!* 29.拷贝指定区域
oExcel.ActiveSheet.Range("A1:E2").Copy
*!* 30.粘贴
oExcel.WorkSheet("Sheet2").Range("A1").PasteSpecial
*!* 31.在第2行之前插入一行
oExcel.ActiveSheet.Rows(2).Insert
*!* 32.在第2列之前插入一列
oExcel.ActiveSheet.Columns(2).Insert
*!* 33.设置字体
oExcel.ActiveSheet.Cells(2,1).Font.Name="黑体"
*!* 34.设置字体大小
oExcel.ActiveSheet.Cells(1,1).Font.Size=25
*!* 35.设置字体为斜体
oExcel.ActiveSheet.Cells(1,1).Font.Italic=.T.
*!* 36.设置整列字体为粗体
oExcel.ActiveSheet.Columns(1).Font.Bold=.T.
*!* 37.清除单元格公式
oExcel.ActiveSheet.Cells(1,4).ClearContents
*!* 38.打印预览工作表
oExcel.ActiveSheet.PrintPreview
*!* 39.打印输出工作表
oExcel.ActiveSheet.PrintOut
*!* 40. (1).Controls(1).accChild(18).Execute &&打印(菜单序号18为Excel2003的‘打印’项)
&&不同版本Excel的菜单序号可以通过以下程序取得
*(需要在VFP7.0以上运行)