




已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
在VFP中直接來(lái)控制Excel (轉(zhuǎn)載) *!*VFP和Excel都可以用來(lái)進(jìn)行處理數(shù)據(jù)庫(kù)表格,如果巧妙地將二者的優(yōu)點(diǎn)結(jié)合起來(lái),將會(huì)大大方便我們的工作。比如我們可以利用VFP進(jìn)行處理數(shù)據(jù),而利用Excel的預(yù)覽打印功能進(jìn)行報(bào)表打印。這就需要我們?cè)赩FP中直接來(lái)控制Excel。下面就在開(kāi)發(fā)VFP應(yīng)用項(xiàng)目時(shí)對(duì)Excel的控制作一下介紹: oExcel=Createobject(Excel.application) &創(chuàng)建Excel對(duì)象 *對(duì)象屬性 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ù)庫(kù)字段名) &給單元格賦值 *Workbooks屬性 oExcel.Workbooks.Add &添加新工作簿 oExcel.Workbooks.Open(c:templl.xls) &打開(kāi)指定工作簿 oExcel.Workbooks.Close &關(guān)閉工作簿 oExcel.Quit &退出Excel Release oExcel &只有釋放對(duì)象變量, EXCEL進(jìn)程才會(huì)完全關(guān)閉 *Worksheets屬性 oExcel.Worksheets(sheet3).Activate &設(shè)置第3個(gè)工作表為激活工作表 oExcel.Worksheets(Sheet1).Rows(18).PageBreak=1 &在第18行之前插入分頁(yè)符 oExcel.WorkSheet(Sheet2).Range(A1).PasteSpecial &粘貼 *ActiveWorkbook屬性 oExcel.ActiveWorkbook.SaveAs(c:temp22.xls) &工作表另存為 oExcel.ActiveWorkbook.saved=.T. &放棄存盤(pán),避免出現(xiàn)保存對(duì)話框 oExcel.ActiveWorkbook.Save &存盤(pán) 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è)置允許用戶(hù)編輯區(qū)域 *表格列屬性 oExcel.ActiveSheet.Columns(2).Insert &在第2列之前插入一列 oExcel.ActiveSheet.Columns(1).ColumnWidth=5 &設(shè)置指定列的寬度(單位:字符個(gè)數(shù)) oExcel.ActiveSheet.Columns(4).PageBreak=0 &在第4列之前刪除分頁(yè)符 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=兩端對(duì)齊、7=跨列居中、8=分散對(duì)齊) oExcel.Range(A4:c4).VerticalAlignment =2 &垂直(1=靠上、2=居中、3=靠下、4=兩端對(duì)齊、5=分散對(duì)齊)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è)邊框線條的類(lèi)型 &(其中Borders參數(shù):1左、2右、3頂、4底、5斜、6斜/;LineStyle值:1與7細(xì)實(shí)、2細(xì)虛、4點(diǎn)虛、9雙細(xì)實(shí)線) *頁(yè)面設(shè)置 WITH oExcel.ActiveSheet.PageSetup .CenterHeader=報(bào)表1 &設(shè)置頁(yè)眉 .CenterHeader=&50報(bào)表1 &設(shè)置頁(yè)眉(字體大小),&后面的50可以自定義,表示字體的大小 .CenterFooter=第&P頁(yè) &設(shè)置頁(yè)腳(LeftFoot:居左,CenterFooter:居中,RightFooter:居右) .CenterFooter=&28第&P頁(yè) 共&N頁(yè) &設(shè)置頁(yè)腳(字體大小),&后面的28可以自定義,表示字體的大小 .HeaderMargin=2/0.035 &設(shè)置頁(yè)眉到頂端邊距為2厘米 .FooterMargin=3/0.035 &設(shè)置頁(yè)腳到底邊距為3厘米 .TopMargin=2/0.035 &設(shè)置頂邊距為2厘米 .BottomMargin=4/0.035 &設(shè)置底邊距為4厘米 .LeftMargin=2/0.035 &設(shè)置左邊距為2厘米 .RightMargin=2/0.035 &設(shè)置右邊距為2厘米 .CenterHorizontally=.T. &設(shè)置頁(yè)面水平居中 .CenterVertically=.T. &設(shè)置頁(yè)面垂直居中 .Papersize=1 &設(shè)置頁(yè)面紙張大小(1窄行8511 39寬行1411 9:A4) .Orientation=1 &設(shè)置紙張方向(1-豎向,2-橫向) .PrintTitleRows=$1:$2 &設(shè)置頂端標(biāo)題行,(每頁(yè)都打印行標(biāo)頭(每頁(yè)頂部出現(xiàn)的單元格的行)) .PrintGridlines=.T. &打印單元格網(wǎng)線 .Zoom=75 &設(shè)置縮放比例為75% ENDWITH *單元格設(shè)置 WITH oExcel.ActiveSheet.Cells(1,1) &第一行第一列單元格 .Font.Name=黑體 &字體名字 .Font.Size=25 &大小 .Font.Italic=.T. &為斜體(Bold-粗體) .Value=數(shù)值 &給單元格賦值 .ClearContents &清除單元格公式 ENDWITH *以下為一些過(guò)程 *檢測(cè)當(dāng)前目錄是否有同名的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 *!*拷貝整個(gè)工作表(含格式) oExcel.activesheet.cells.Copy &拷貝 oExcel.sheets(1).Select &選擇第一工作表 oExcel.ActiveSheet.Paste &粘貼 oExcel.ActiveSheet.Cells(3,4).Value & ActiveSheet 為當(dāng)前的Sheet工作薄名字,Cells(3,4).value 為第3行第4列的值 *!* 顯示某個(gè)單元格的批注內(nèi)容 oExcel=Createobject(Excel.application) oExcel.Workbooks.Open(d:TESTtesta.xls) oExcel.Visible=.T. ?oExcel.Range(B5).Comment.Text &顯示B5單元格的批注內(nèi)容 oExcel.Workbooks.Close oExcel.Quit Release oExcel *!* 將當(dāng)前工作表中的已用區(qū)域(只讀)存入數(shù)組。 strPath=D:TEST123.xls Local oExcel oExcel=Createobject(Excel.Application) oExcel.WorkBooks.Open(strPath) arrTableInfo=oExcel.ActiveSheet.UsedRange.Value &將當(dāng)前工作表中的已用區(qū)域(只讀)存入數(shù)組。 oExcel.Quit Release oExcel Insert Into 表名 From arrTableInfo *!* 設(shè)置excel批注的字體(excel 2000實(shí)現(xiàn)了,如下:) ole.Range(a3).Comment.Shape.Select & 此命令要求批注的 Visible=.t. ole.Selection.Font.Size=9 ole.Selection.Font.Name=黑體 ole.Selection.Font.bold=.F. 注:該組命令要求先選中批注框,否則寫(xiě)成 ole.Range(a3).Comment.Shape.Font.Size=9 則出錯(cuò),不知為何! *!* 如何取得當(dāng)前EXCEL表中工作表的數(shù)目及各工作表的名稱(chēng)? Clear Local lnSheetCount oExcel=Createobject(EXCEL.APPLICATION) &創(chuàng)建Excel對(duì)象 oExcel.WORKBOOKS.Open(c:111321.xls) &打開(kāi)指定工作簿 With oExcel lnSheetCount=.WorkBooks(1).Sheets.Count &統(tǒng)計(jì)工作表數(shù)量 Endwith ?當(dāng)前EXCEL表中工作表的數(shù)目為:+Alltrim(Str(lnSheetCount) For Each oMyVar In oExcel.sheets ?當(dāng)前EXCEL表中工作表的名稱(chēng)分別為+oMyVar.Name &顯示Excel表中所有工作表 Next oMyVar oExcel.WORKBOOKS.Close &關(guān)閉工作簿 oExcel.Quit &退出Excel *!* 如何用編程的方法打開(kāi)有密碼的Excel文件? *Excel文件加了密碼,如何在VFP中用編程的方式把密碼輸入,使Excel文件打開(kāi) oExcel=Createobject(Excel.application) oExcel.Workbooks.Open(d:22.xls) *!* 這樣還有一個(gè)密碼的對(duì)話框出來(lái),需要輸入密碼才能打開(kāi)文件。 *!* 如何用編程的方法直接打開(kāi)有密碼的Excel文件? oExcel.Workbooks.Open(d:22.xls,.F.,.F., ,123,456) 123表示打開(kāi)權(quán)限的密碼, 456表示修改權(quán)限的密碼. *!* 如何將一個(gè)已知路徑的圖片插入到excel中. oExcel.ActiveSheet.PictureS.Insert(圖片文件名) *!* 能不能指定在某一位置或區(qū)域放置圖片并控制圖片顯示大小呢? oExcel.SHEETS(1).Select oExcel.Range(位置).Select oExcel.ActiveSheet.PictureS.Insert(圖片文件名).Select oExcel.Selection.ShapeRange.LockAspectRatio =.T. oExcel.Selection.ShapeRange.Height = 57 *!* 類(lèi)型為字符型的字段輸出到excel 中,前面的零被自動(dòng)去掉,例如“ 009877” 變?yōu)椤?9877” ,怎么解決? *!* 方法1.在字符串前面加半角單引號(hào)“ ”, *!* 例如: oExcel.Cells(1,1).Value=0123 *!* 或用變量 cString=+0123 &其中0123可以取自表中一個(gè)字段 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 = &把被選定的單元格設(shè)為文本格式 oExcel.Cells(1,1).Value=0123 &給所選單元格覆值 *!* 獲取 Excel 記錄數(shù) loXls = Createobject(excel.application) bookExcel = loXls.Application.Workbooks.Open(f:pz.xls) nrows=bookExcel.Worksheets(pz) UsedRange =nrows.UsedRange r=UsedRange.Rows.Count &有數(shù)據(jù)的總行數(shù) c=UsedRange.Columns.Count &有數(shù)據(jù)的總列數(shù) loXls.Workbooks.Close loXls.Quit *!* 在EXCEL中如何在打開(kāi)文件的同時(shí)自動(dòng)執(zhí)行一個(gè)宏命令。 只要將宏的命名為 AUTO_OPEN 即可。 如果要在文件關(guān)閉時(shí)運(yùn)行,則命名為auto_close 。 *!* 在VFP中可以執(zhí)行EXCEL的選擇性粘貼嗎? .Range(A2).PasteSpecial (xlPasteValues) & 會(huì)出錯(cuò) .Range(A2).PasteSpecial (3) & 也會(huì)出錯(cuò) .Range(A2).PasteSpecial & 只好這樣了 *!* 如何才能只粘貼值呢? xlPasteValues=-4163 oExcel.Range(A1).Select oExcel.Selection.Copy oExcel.Range(B1)._PasteSpecial(xlPasteValues) *注意:在Excel 中,xlPasteValues是一個(gè)常量,它的值是一個(gè)數(shù)值型的:-4163 oExcel.Range(A1).Copy oExcel.Range(B3).PasteSpecial(8) &粘貼行、列寬 oExcel.Range(B3).PasteSpecial(-4122) &粘貼格式 *!* 本程序通過(guò)將原dbf表拷成excel格式,然后導(dǎo)入并設(shè)置報(bào)表格式 Para tablename Local hb1 As excel.Application Wait 正在導(dǎo)出數(shù)據(jù),請(qǐng)稍侯 Window At 20,30 Timeout 1 bhaveerror=.F. &定義一個(gè)變量判斷是否發(fā)生錯(cuò)誤 Try hb1=Createobject(excel.application) Catch Messagebox(請(qǐng)檢查你是否已安裝microsoft excel應(yīng)用程序!,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+tempsheet1.xls *filepath=tempsheet1.xls If !File(filepath) Messagebox(數(shù)據(jù)源的excel文件未生成,報(bào)表生成被終止!) 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 *合并兩行作為報(bào)表標(biāo)題* HB1.Selection.HorizontalAlignment = 3 &水平方向 2左對(duì)齊,3居中,4右對(duì)齊 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 = 請(qǐng)輸入報(bào)表標(biāo)題 HB1.Range(hbdygs).Characters.Font.Name = 隸書(shū) HB1.Range(hbdygs).Characters.Font.FontStyle = 常規(guī) HB1.Range(hbdygs).Characters.Font.ColorIndex = 1 &字符顏色 *根據(jù)數(shù)據(jù)源表結(jié)構(gòu)的寬度設(shè)置列的寬度* Copy Stru Exte To tempterm_stru Sele 0 Use tempterm_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) *設(shè)置數(shù)據(jù)區(qū)域的字體格式* 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.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賀蘭山東麓葡萄酒展會(huì)銷(xiāo)售技巧培訓(xùn)
- 培訓(xùn)計(jì)劃制定方案
- 《課程預(yù)習(xí)知識(shí)點(diǎn)》課件
- 車(chē)檢設(shè)備轉(zhuǎn)讓合同協(xié)議
- 活動(dòng)主持協(xié)議書(shū)
- 路面塌方清理協(xié)議書(shū)范本
- 買(mǎi)賣(mài)廢鐵合同協(xié)議書(shū)
- 配件供銷(xiāo)合作協(xié)議合同
- 運(yùn)輸品賠償協(xié)議書(shū)范本
- 醫(yī)學(xué)亂象典型案例剖析
- 2025年北京市朝陽(yáng)區(qū)高三二模-政治+答案
- 《光纖激光切割技術(shù)》課件
- 10.信息光子技術(shù)發(fā)展與應(yīng)用研究報(bào)告(2024年)
- 2025年下半年商務(wù)部外貿(mào)發(fā)展事務(wù)局第二次招聘8人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 2024年山西杏花村汾酒集團(tuán)有限責(zé)任公司招聘筆試真題
- 《行政法與行政訴訟法》課件各章節(jié)內(nèi)容-第一章 行政法概述
- 浙江2025年浙江省地質(zhì)院本級(jí)及所屬部分事業(yè)單位招聘筆試歷年參考題庫(kù)附帶答案詳解
- 2025年廣東廣州中物儲(chǔ)國(guó)際貨運(yùn)代理有限公司招聘筆試參考題庫(kù)含答案解析
- 海外安保面試題及答案
- 愚公移山英文 -中國(guó)故事英文版課件
- 原輔材料留樣觀察記錄
評(píng)論
0/150
提交評(píng)論