电竞比分网-中国电竞赛事及体育赛事平台

分享

在VFP中直接來控制Excel

 悟靜 2009-06-23

*!*VFPExcel都可以用來進(jìn)行處理數(shù)據(jù)庫表格,如果巧妙地將二者的優(yōu)點(diǎn)結(jié)合起來,將會大大方便我們的工作。比如我們可以利用VFP進(jìn)行處理數(shù)據(jù),而利用Excel的預(yù)覽打印功能進(jìn)行報(bào)表打印。這就需要我們在VFP中直接來控制Excel。下面就在開發(fā)VFP應(yīng)用項(xiàng)目時(shí)對Excel的控制作一下介紹:

 oExcel=Createobject("Excel.application") &&創(chuàng)建Excel對象

 **對象屬性

oExcel.Visible=.T.  &&顯示Excel窗口

oExcel.Caption="VFP應(yīng)用程序調(diào)用Microsoft Excel"  &&更改Excel標(biāo)題欄

oExcel.DisplayAlerts = .F. &&關(guān)閉提示和警告消息,運(yùn)行結(jié)束后,應(yīng)將本屬性設(shè)置回 True

oExcel.cells(1,4).Value=XM(XM為數(shù)據(jù)庫字段名)  &&給單元格賦值

 **Workbooks屬性

oExcel.Workbooks.Add  &&添加新工作簿

oExcel.Workbooks.Open("c:\temp\ll.xls")  &&打開指定工作簿

oExcel.Workbooks.Close  &&關(guān)閉工作簿

oExcel.Quit  &&退出Excel

Release oExcel &&只有釋放對象變量, EXCEL進(jìn)程才會完全關(guān)閉

 **Worksheets屬性

oExcel.Worksheets("sheet3").Activate  &&設(shè)置第3個(gè)工作表為激活工作表

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.  &&放棄存盤,避免出現(xiàn)保存對話框

oExcel.ActiveWorkbook.Save  &&存盤

oExcel.ActiveWorkbook.Close(.F.)  &&關(guān)閉工作簿

oExcel.ActiveWorkbook.Protect('密碼',.T.,.T.)  &&保護(hù)工作薄(第一個(gè).T.:保護(hù)工作簿結(jié)構(gòu),第二個(gè).T.:保護(hù)工作簿窗口)

 **ActiveSheet屬性

oExcel.ActiveSheet.UsedRange.Copy  &&拷貝整個(gè)工作表

oExcel.ActiveSheet.PrintPreview  &&打印預(yù)覽工作表

oExcel.ActiveSheet.PrintOut  &&打印輸出工作表

oExcel.ActiveSheet.Protect('密碼',.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.)  &&保護(hù)工作表

oExcel.ActiveSheet.Protection.AllowEditRanges.Add("區(qū)域3",oExcel.ActiveSheet.Range("A2:D5")) &&設(shè)置允許用戶編輯區(qū)域

  **表格列屬性

oExcel.ActiveSheet.Columns(2).Insert  &&在第2列之前插入一列

oExcel.ActiveSheet.Columns(1).ColumnWidth=5  &&設(shè)置指定列的寬度(單位:字符個(gè)數(shù))

oExcel.ActiveSheet.Columns(4).PageBreak=0  &&在第4列之前刪除分頁符

oExcel.ActiveSheet.Columns(1).Font.Bold=.T.  &&設(shè)置整列字體為粗體

 **表格行屬性

oExcel.ActiveSheet.Rows(2).Insert  &&在第2行之前插入一行

oExcel.ActiveSheet.Rows(1).RowHeight=1  &&設(shè)置指定行的高度(單位:磅)(設(shè)定行高為 1磅 , 1=0.035厘米)

oExcel.ActiveSheet.Rows("50:100").RowHeight=1 &&設(shè)置第50行至100行的高度

  **表格范圍屬性

oExcel.Range("A4:c4").HorizontalAlignment =1 &&水平(1-默認(rèn)、2-靠左、3-居中、4-靠右、5-填充、6=兩端對齊、7=跨列居中、8=分散對齊)

oExcel.Range("A4:c4").VerticalAlignment =2 &&垂直(1=靠上、2=居中、3=靠下、4=兩端對齊、5=分散對齊)

oExcel.Range("A4:C4").WrapText =.F.  &&文本自動(dòng)換行

oExcel.ActiveSheet.Range("A4:B5").Merge=.T.  &&合并單元格

oExcel.ActiveSheet.Range("A1:E2").Copy  &&拷貝指定區(qū)域

oExcel.ActiveSheet.Range("b3:d3").BorderS(2).Weight=3  &&指定邊框線寬度(Borders參數(shù)如下)

oExcel.ActiveSheet.Range("b3:d3").BorderS(2).LineStyle=1  &&設(shè)置四個(gè)邊框線條的類型

&&(其中Borders參數(shù):1-左、2-右、3-頂、4-底、5-斜、6-斜/;LineStyle值:17-細(xì)實(shí)、2-細(xì)虛、4-點(diǎn)虛、9-雙細(xì)實(shí)線)

  **頁面設(shè)置

WITH oExcel.ActiveSheet.PageSetup

    .CenterHeader="報(bào)表1"  &&設(shè)置頁眉

    .CenterHeader="&50報(bào)表1" &&設(shè)置頁眉(字體大小),'&'后面的50可以自定義,表示字體的大小

    .CenterFooter="&P"  &&設(shè)置頁腳(LeftFoot:居左,CenterFooter:居中,RightFooter:居右)

    .CenterFooter="&28&P  &N"  &&設(shè)置頁腳(字體大小),'&'后面的28可以自定義,表示字體的大小

    .HeaderMargin=2/0.035  &&設(shè)置頁眉到頂端邊距為2厘米

   

感谢您访问我们的网站,您可能还对以下资源感兴趣:

电竞比分网