VFP操作Excel命令大全

  • 格式:docx
  • 大小:36.90 KB
  • 文档页数:33

VFP操作Excel命令大全

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-窄行8511 39-宽行14oExcel.ActiveSheet.PageSetup.Papersize=1

*!* 27.打印单元格网线

oExcel.ActiveSheet.PageSetup.PrintGridlines=.T.

*!* 28.拷贝整个工作表

edRange.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)="黑体"

*!* 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 11 9:A4)

*!*

40. mandBars(1).Controls(1).accChild(18).Execute

&&打印(菜单序号18为Excel2003的‘打印’项)

&&不同版本Excel的菜单序号可以通过以下程序取得

*(需要在VFP7.0以上运行)

oXls=Getobject("","excel.sheet")

XlApp=oXLS.Application

XlSheet=XlApp.ActiveSheet

bars=mandBars.Count

Str1=''

For i=1 To bars

Str1=Str1+Chr(13)+Alltrim(Str(i))+'

'+mandBars(i).accName+'(NAME:'+mandBars(i).Name+'

INDEX:'+Alltrim(Str(mandBars(i).Index))+')'

bars2=mandbars(i).accChildCount

For j=1 To bars2

Try

obj=mandbars(i).Controls(j)

Str1=Str1+Chr(13)+' '+Alltrim(Str(j))+'

j).Id))+')'

For k=1 To obj.accChildCount

Try

If Not Empty(obj.Controls(k).accname )

Str1=Str1+Chr(13)+' '+Alltrim(Str(k))+'

'+obj.Controls(k).accName+' (ID:'+

Alltrim(Str(obj.Controls(k).Id))+')' Endif

Catch

Exit

Endtry

Endfor

Catch

Exit

Endtry

Endfor

Wait Windows Alltrim(Str(i))+' / '+Alltrim(Str(bars))+'

'+Str(i/bars*100,10,2)+'%' Nowait

Endfor

Save To Xls.txt All Like Str1

Modify Command Xls.txt

Return

*!* 41.工作表另存为

oExcel.ActiveWorkbook.SaveAs("c:\temp\22.xls")

*检测当前目录是否有同名的EXCEL表,如果有先删除,再另存

If !File(Sys(5) + Curdir() + "result.xls") 、、'+mandbars(i).Controls(j).accname+'(ID:'+Alltrim(Str(mandBars(i).Controls(、oExcel.ActiveWorkbook.SaveAs(Sys(5) + Curdir() + "result.xls")

Else

lcFileName = loExcel.GetSaveAsFilename("result", "Excel

(*.xls), *.xls")

If !Empty(lcFileName)

If File(lcFileName)

Delete File (lcFileName)

Endif

oExcel.ActiveWorkbook.SaveAs(lcFileName)