精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
在VFP中直接來控制Excel

*!*VFPExcel都可以用來進行處理數據庫表格,如果巧妙地將二者的優點結合起來,將會大大方便我們的工作。比如我們可以利用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  &&退出Excel

Release 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屬性

oExcel.ActiveSheet.UsedRange.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值:17-細實、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.Name="黑體"  &&字體名字

    .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")

Else

    lcFileName = loExcel.GetSaveAsFilename("result", "Excel (*.xls), *.xls")

    If !Empty(lcFileName)

        If File(lcFileName)

            Delete File (lcFileName)

        Endif

        oExcel.ActiveWorkbook.SaveAs(lcFileName)

    Endif

Endif

*!*拷貝整個工作表(含格式)

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.Close

oExcel.Quit

Release oExcel

 *!* 將當前工作表中的已用區域(只讀)存入數組。

strPath='D:\TEST\123.xls'

Local oExcel

oExcel=Createobject("Excel.Application")

oExcel.WorkBooks.Open(strPath)

arrTableInfo=oExcel.ActiveSheet.UsedRange.Value &&將當前工作表中的已用區域(只讀)存入數組。

oExcel.Quit

Release oExcel

Insert Into 表名 From arrTableInfo

  *!* 設置excel批注的字體(excel 2000實現了,如下:)

ole.Range("a3").Comment.Shape.Select && 此命令要求批注的 Visible=.t.

ole.Selection.Font.Size=9

ole.Selection.Font.Name="黑體"

ole.Selection.Font.bold=.F.

注:該組命令要求先選中批注框,否則寫成 ole.Range("a3").Comment.Shape.Font.Size=9 則出錯,不知為何!

  *!* 如何取得當前EXCEL表中工作表的數目及各工作表的名稱?

Clear

Local lnSheetCount

oExcel=Createobject("EXCEL.APPLICATION") &&創建Excel對象

oExcel.WORKBOOKS.Open("c:\111\321.xls") &&打開指定工作簿

With oExcel

    lnSheetCount=.WorkBooks(1).Sheets.Count &&統計工作表數量

Endwith

'當前EXCEL表中工作表的數目為:'+Alltrim(Str(lnSheetCount))

For Each oMyVar In oExcel.sheets

    '當前EXCEL表中工作表的名稱分別為'+oMyVar.Name &&顯示Excel表中所有工作表

Next oMyVar

oExcel.WORKBOOKS.Close &&關閉工作簿

oExcel.Quit &&退出Excel

 *!* 如何用編程的方法打開有密碼的Excel文件?

*Excel文件加了密碼,如何在VFP中用編程的方式把密碼輸入,使Excel文件打開

oExcel=Createobject('Excel.application')

oExcel.Workbooks.Open("d:\22.xls")

*!* 這樣還有一個密碼的對話框出來,需要輸入密碼才能打開文件。

*!* 如何用編程的方法直接打開有密碼的Excel文件?

oExcel.Workbooks.Open("d:\22.xls",.F.,.F., ,"123","456")

"123"表示打開權限的密碼,

"456"表示修改權限的密碼.

  *!* 如何將一個已知路徑的圖片插入到excel.

oExcel.ActiveSheet.PictureS.Insert("圖片文件名")

  *!*  能不能指定在某一位置或區域放置圖片并控制圖片顯示大小呢

oExcel.SHEETS(1).Select

oExcel.Range("位置").Select

oExcel.ActiveSheet.PictureS.Insert("圖片文件名")).Select

oExcel.Selection.ShapeRange.LockAspectRatio =.T.

oExcel.Selection.ShapeRange.Height = 57

  *!* 類型為字符型的字段輸出到excel 中,前面的零被自動去掉,例如“ 009877” 變為“ 9877” ,怎么解決?

*!* 方法1.在字符串前面加半角單引號“ ' ”,

*!* 例如:

oExcel.Cells(1,1).Value="'0123"

*!* 或用變量

cString="'"+"0123"   &&其中0123可以取自表中一個字段

oExcel.Cells(1,1).Value=cString   &&o.Range("A1:A1").value=cString

*!* 方法2.

oExcel.CELLS(1,1).Select   &&eole.Range("A1:E1").Select

oExcel.Selection.NumberFormatLocal = "@"   &&把被選定的單元格設為文本格式

oExcel.Cells(1,1).Value="0123"   &&給所選單元格覆值

*!* 獲取 Excel 記錄數

loXls = Createobject("excel.application")

bookExcel = loXls.Application.Workbooks.Open("f:\pz.xls")

nrows=bookExcel.Worksheets('pz')

UsedRange =nrows.UsedRange

r=UsedRange.Rows.Count &&有數據的總行數

c=UsedRange.Columns.Count &&有數據的總列數

loXls.Workbooks.Close

loXls.Quit

 *!* EXCEL中如何在打開文件的同時自動執行一個宏命令。

只要將宏的命名為 AUTO_OPEN 即可。

如果要在文件關閉時運行,則命名為auto_close

  *!* VFP中可以執行EXCEL的選擇性粘貼嗎

.Range("A2").PasteSpecial ("xlPasteValues") && 會出錯

.Range("A2").PasteSpecial (3) && 也會出錯

.Range("A2").PasteSpecial && 只好這樣了

  *!* 如何才能只粘貼值呢

xlPasteValues=-4163

oExcel.Range("A1").Select

oExcel.Selection.Copy

oExcel.Range("B1")._PasteSpecial(xlPasteValues)

*注意:Excel 中,"xlPasteValues"是一個常量,它的值是一個數值型的:-4163

oExcel.Range("A1").Copy

oExcel.Range("B3").PasteSpecial(8) &&粘貼行、列寬

oExcel.Range("B3").PasteSpecial(-4122) &&粘貼格式

 *!* 本程序通過將原dbf表拷成excel格式,然后導入并設置報表格式

Para tablename

Local hb1 As excel.Application

Wait "正在導出數據,請稍侯……" Window At 20,30 Timeout 1

bhaveerror=.F. &&定義一個變量判斷是否發生錯誤

Try

    hb1=Createobject("excel.application")

Catch

    Messagebox("請檢查你是否已安裝microsoft excel應用程序!",0,"提示")

    bhaveerror=.T.

Endtry

If bhaveerror=.T.

    Return

Endif

If Right(curr_path,1)<>'\'

    curr_path=curr_path+"\"

Endif

ctablename=tablename+"_excel"

filepath=curr_path+"temp\sheet1.xls"

*filepath="temp\sheet1.xls"

If !File(filepath)

    Messagebox("數據源的excel文件未生成,報表生成被終止!")

    Return

Endif

HB1.workbooks.Open(filepath)

HB1.SHEETS("sheet1").Select

hb1.sheets(1).Rows(1).entirerow.Insert

hb1.sheets(1).Rows(1).entirerow.Insert

Sele (ctablename)

nfieldcount=Fcount()

nreccount=Reccount()

hbdygs="A1:"+Chr(nfieldcount+64)+"2"

HB1.Range(hbdygs).Select

****合并兩行作為報表標題*************

HB1.Selection.HorizontalAlignment = 3 &&水平方向 2左對齊,3居中,4右對齊

HB1.Selection.VerticalAlignment = 2 &&垂直方向 1靠上,2居中,3靠下

HB1.Selection.WrapText = .F. && ??

HB1.Selection.Orientation = 0 && ??

HB1.Selection.AddIndent = .F. && ??

HB1.Selection.ShrinkToFit = .F. && ??

HB1.Selection.MergeCells = .T. && ??

HB1.Range(hbdygs).FormulaR 1C 1 = "請輸入報表標題"

HB1.Range(hbdygs).Characters.Font.Name = "隸書"

HB1.Range(hbdygs).Characters.Font.FontStyle = "常規"

HB1.Range(hbdygs).Characters.Font.ColorIndex = 1 &&字符顏色

***根據數據源表結構的寬度設置列的寬度********

Copy Stru Exte To temp\term_stru

Sele 0

Use temp\term_stru

Select (ctablename)

For i=1 To nfieldcount

    cvalue=Allt(Field(i))

    Select term_stru

    Loca For Lower(Allt(field_name))==cvalue

    If Found()

        columnname=Chr(i+64)+":"+Chr(i+64)

        hb1.Columns(columnname).ColumnWidth=field_len

    Endif

    Sele (ctablename)

Endfor

Sele term_stru

Use

activecellname=Chr(nfieldcount+64)+Allt(Str(nreccount+3))

*************設置數據區域的字體格式***************

HB1.Range("A3:"+activecellname).Characters.Font.Name = "宋體"

HB1.Range("A3:"+activecellname).Characters.Font.Size= 9

HB1.Range("A3:"+activecellname).Select

hb1.Selection.BorderS(1).LineStyle = .T.

hb1.Selection.BorderS(2).linestyle = .T.

hb1.Selection.BorderS(3).linestyle = .T.

hb1.Selection.BorderS(4).linestyle = .T.

hb1.ActiveWorkbook.SaveAs("c:\aa.xls")

hb1.Application.Visible=.T.

* HB1.ACTIVEWORKBOOK.SAVE &&自動保存數據

* HB1.ACTIVEWORKBOOK.CLOSE &&關閉當前工作簿

* HB1.QUIT

 

*!* 復制Sheet工作表

EFILENAME='D:\你的Excel表名.XLS'

oExcel=Createobject("Excel.application")

oExcel.Workbooks.Open("&EFILENAME")

oExcel.Visible=.T.

oExcel.SHEETS(1).Select

oExcel.SHEETS(1).Copy(Null,oExcel.SHEETS(1)) &&&&把第1個工作表復制到第1個工作表之后

oExcel.SHEETS(2).Name='NewSheetName' &&設置第2個工作表名稱

*!*oExcel.SHEETS(1).COPY(oExcel.SHEETS(1),NULL) &&&&把第1個工作表復制到第1個工作表之前

*!*oExcel.SHEETS(1).NAME='NewSheetName' &&設置第1個工作表名稱

 

*!* 如何將DBF中內容COPYEXCEL的指定區域

例如我有一個DBF:

Name_F Sl_f

Mike 546

kyle 200

想將這個內容轉到EXCEL里面的E1:F2區域!

Use 表名

_vfp.DataToClip('表名',Reccount(),3) &&將一組記錄作為文本復制到剪貼板上,3使用制表符分隔字段。

oexl=Createobject('excel.application') &&創建電子表格

oexl.Visible=.T. &&使電子表格可見

oexl.workbooks.Add &&創建工作簿

With oexl

    .Range("E1:F2").Select &&根據你的表中的記錄數和字段數調整此項中的'F2'

    .ActiveSheet.Paste

Endwith

本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VFP全面控制EXCEL
Vfp控制Excel全操作集(補充方法含統計圖 )
工作簿批量改名
Excel259個常用宏
VBS控制Excel的一些常見方法
自用VBA常用語句\函數\子過程
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 皋兰县| 闽清县| 贡山| 柘城县| 泰和县| 会同县| 平泉县| 荣昌县| 西昌市| 锡林浩特市| 扎鲁特旗| 将乐县| 西林县| 昌黎县| 漳州市| 顺昌县| 江津市| 衡山县| 渝北区| 云南省| 梁河县| 申扎县| 开阳县| 吕梁市| 邵武市| 聊城市| 肥东县| 祁门县| 道孚县| 色达县| 冕宁县| 垦利县| 寿宁县| 永清县| 都安| 西宁市| 马尔康县| 余干县| 宜兴市| 大名县| 郴州市|