


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、VFP和Excel都可以用來進行處理數據庫表格,如果巧妙地將二者的優點結合起來,將會大大方 便我們的工作。比如我們可以利用VFP進行處理數據,而利用Excel的預覽打印功能進行報表打印。這就需要我們在VFP中直接來控制 Excel。下面就在開發 VFP應用項目時對 Excel的控制作一下介紹:*!* 1 .創建Excel對象oExcel= Createobject ("Excel.applicati on")*!* 2 .添加新工作簿oExcel.Workbooks. Add*!* 3 設置第3個工作表為激活工作表oExcel.Worksheets("sheet3
2、"). 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.Colu mns .Colu m
3、n Width=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. Colum ns
4、(4).PageBreak=0*!* 12 .指定邊框線寬度(Borders參數如下)ole.ActiveSheet. Ran ge("b3:d3").BorderS(2).Weight=3*!* 13設置四個邊框線條的類型oExcel.ActiveSheet.Ran ge("b3:d3").BorderS (2).L in eStyle=1(其中 Borders 參數:1左、2右、3頂、4 底、5 斜、6斜 / ; LineStyle值:1 與 7-細實、2 細虛、4 點虛、9雙細實線)*!* 14 設置頁眉oExcel.ActiveSheet.Pag
5、eSetup.Ce nterHeader=" 報表 1"*!* 15 設置頁眉(字體大小)報表1"&&&后面的50可以自定義,表oExcel.ActiveSheet.PageSetup.Ce nterHeader="&50示字體的大小*!* 16 設置頁腳oExcel.ActiveSheet.PageSetup.Ce nterFooter="第&P 頁"*!* 17.設置頁腳(字體大小)第&P頁“&&'&'后面的28可以自定義,表oExcel.Ac
6、tiveSheet.PageSetup.Ce nterFooter="&28示字體的大小*!* 18 設置頁眉到頂端邊距為2厘米oExcel.ActiveSheet.PageSetup.HeaderMargi n=2/0.035*!* 19 設置頁腳到底邊距為3厘米oExcel.ActiveSheet.PageSetup.FooterMargi n=3/0.035*!* 20 設置頂邊距為2厘米oExcel.ActiveSheet.PageSetup.TopMargi n=2/0.035*!* 21 設置底邊距為 4厘米oExcel.ActiveSheet.PageSetup
7、.BottomMargi n=4/0.035*!* 22 設置左邊距為2厘米oExcel.ActiveSheet.PageSetup. LeftMargi n=2/0.035*!* 23 .設置右邊距為2厘米oExcel.ActiveSheet.PageSetup.RightMargi n=2/0.035*!* 24 .設置頁面水平居中oExcel.ActiveSheet.PageSetup.Ce nterHorizo ntally=.T.*!* 25 .設置頁面垂直居中oExcel.ActiveSheet.PageSetup.Ce nterVertically=.T.*!* 26設置頁面紙張
8、大小(1 窄行©門II ;陽一寬行14 II恥4:oExcel.ActiveSheet.PageSetup.Papersize=1*!* 27打印單元格網線oExcel.ActiveSheet.PageSetup.Pri ntGridli nes=.T.*!* 28拷貝整個工作表oExcel.ActiveSheet.UsedRa nge.Copy*!* 29.拷貝指定區域oExcel.ActiveSheet. Ran ge("A1:E2").Copy*!* 30 .粘貼oExcel.WorkSheet("Sheet2").Ran ge(&quo
9、t;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 設置字體為斜體Font .ltalic=.T.oExcel.ActiveSheet
10、.Cells(1,1).*!* 36 .設置整列字體為粗體oExcel.ActiveSheet.Columns(1). Font .Bold=.T.*!* 37 清除單元格公式oExcel.ActiveSheet.Cells(1,4).ClearCo ntents*!* 38 打印預覽工作表oExcel.ActiveSheet.Pri ntPreview*!* 39 打印輸岀工作表oExcel.ActiveSheet.Pri ntOut18*!* 40 . oExcel.Comma ndBars(1).Co ntrols.accChild(18).Execute &&打印(菜單
11、序號為Excel2003的打印項)&&不同版本Excel的菜單序號可以通過以下程序取得*(需要在VFP7.0以上運行)oXls= Getobject ("","excel.sheet")XlApp=oXLS. ApplicationXlSheet=XlApp.ActiveSheetbars=xlapp.Comma ndBars. CountStr1="For i=1 To barsStr1=Str1+ Chr(13)+ Alltrim (Str (i)+'、'+xlapp.Comma ndBars(i).accN
12、ame+'(NAME:'+xlapp.Comma ndBars(i).Name"'INDEX:'+ Alltrim ( Str (xlapp.CommandBars(i).Index )+')'bars2=ma ndbars(i).accChildCou ntFor j=1 To bars2Tryobj=mandbars(i).Controls (j)Str1=Str1+ Chr(13)+' '+ Alltrim (Str (j)+'、'+mandbars(i).Controls (j).accname+
13、'(ID:'+Alltrim ( Str (xlapp.CommandBars(i).Controls (j). Id )+')'For k=1 To obj.accChildCou ntTryIf Not Empty(obj. Controls (k).accname )Str1=Str1+ Chr(13)+''+ Alltrim (Str (k)+'、'+obj. Controls (k).accName+' (ID :'+ Alltrim (Str (obj. Controls (k). Id)+')
14、'En difCatchExitEn dtryEn dforCatchExitEn dtryEn dfor(Str (i)+' / '+NowaitAlltrim (Str (bars)+'Wait Win dows Alltrim'+ Str (i/bars*100,10,2)+'%'En dforSave To Xls .txt All Like Str1Modify Comma nd Xls .txtReturn*!* 41工作表另存為oExcel.ActiveWorkbook. SaveAs("c:/temp/22.xl
15、s")*檢測當前目錄是否有同名的EXCEL表,如果有先刪除,再另存If ! File ( Sys(5) + Curdir () + "result.xls")oExcel.ActiveWorkbook. SaveAs( Sys(5) + Curdir () + "result.xls")ElselcFileName = loExcel.GetSaveAsFilename("result", "Excel (*.xls), *.xls")If ! Empty(lcFileName)If File (lcFi
16、leName)Delete File(lcFileName)En difoExcel.ActiveWorkbook. SaveAs(lcFileName)En difEndif*!* 42 放棄存盤&&避免岀現保存對話框oExcel.ActiveWorkbook.saved=.T.*!* 43 .存盤oExcel.ActiveWorkbook. Save*!* 44.關閉工作簿oExcel.Workbooks. Closeobjexcel.activeworkbook.Close (.F.)*!* 45 .退岀 ExceloExcel.QuitRelease oExcel&am
17、p;&只有釋放對象變量,EXCEL進程才會完全關閉*!* 46合并單元格oExcel.ActiveSheet.Ran ge("A4:B5").MergeCells=.T.*!* 47下列設置大家自己理解.LeftHeader =Chr(13)+"左頁眉“.Cen terHeader ="中頁眉“.RightHeader ="右頁眉“丄 eftFooter ="左頁腳".Cen terFooter ="中頁腳“.RightFooter ="右頁腳".Orie ntati on=1&
18、&1豎排,2橫排En dwithWith crfole. Ran ge("A4:C4").MergeCells = .T.WrapText =.F.Orie ntatio n = 0.Add Indent =.F.Shri nkToFit = .F.En dwith*!* 48.文本對齊oExcel. Range("A4:c4").HorizontalAlignment=1 &&水平(1-默認、2-靠左、3-居中、4-靠右、5-填充、6=兩端對齊、7=跨列居中、8=分散對齊)oExcel. Range("A4:c4&qu
19、ot;).VerticalAlignment =2&&垂直(1 =靠上、2=居中、3=靠下、4=兩端對齊、5=分散對齊)*!* 49 拷貝整個工作表(含格式)&&拷貝oExcel.sheets(1).Select&&選擇第一工作表&&粘貼oExcel.ActiveSheet.Cells(3,4).Value && ActiveSheet為當前的Sheet工作薄名字,Cells(3,4).value 為第3行第4列的值*以上控制調用語句在中文VFP5.0企業版下運行通過,運行環境為Excel 97及中文 Window
20、s 98*!* 50.顯示某個單元格的批注內容oExcel= Createobject ("Excel.applicati on")oExcel.Workbooks. Open("d:/TEST/testa.xls")oExcel. Visible =.T.?oExcel. Range("B5"). Comment Text&&顯示 B5 單元格的批注內容oExcel.Workbooks. CloseoExcel.QuitRelease oExcel*!* 51. oExcel.ActiveSheet.PageSetu
21、p.PrintTitleRows="$1:$1"&&每頁都打印行標頭(每頁頂部岀現的單元格的行)*!* 52 .保護工作表:oExcel.ActiveSheet. Protect ('密碼',.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.T.,.TJ*!* 53 .保護工作薄oExcel.ActiveWorkbook. Protect ('密碼第一個.T.:保護工作簿結構第二個.T.:保護工作簿窗口*!* 54 設置允許用戶編輯區域oExcel.ActiveSheet.Pro
22、tection.AllowEditRanges.Add("區域3",oExcel.ActiveSheet.Ran ge("A2:D5")*!* 55 如果不想在宏運行時被無窮無盡的提示和警告消息所困擾,就將本屬性設置為.F.oExcel.DisplayAlerts = .F.如果不想在宏運行時被無窮無盡的提示和警告消息所困擾,就將本屬性設置為False ;這樣每次岀現需用戶應答的消息時,Microsoft Excel 將選擇默認應答。如果將本屬性設置為False,那么宏運行結束后,Microsoft Excel并不自動將其設置回True故當宏運行結束后,
23、都應將本屬性設置回True值。*!* 56 將當前工作表中的已用區域(只讀)存入數組。strPath='D:/TEST/123.xls'Local oExceloExcel= Createobject ("Excel.Applicati on")oExcel.WorkBooks. Open(strPath)arrTableI nfo=oExcel.ActiveSheet.UsedRa nge.Value&&將當前工作表中的已用區域(只讀)存入數組。oExcel.QuitRelease oExcelIn sert Into表名 From arr
24、Table Info*!* 57 .設置excel批注的字體(excel 2000 實現了,如下:)ole. Range("a3"). Comment Shape. Select&& 此命令要求批注的Visible=.t.ole. Selection . Font. Size =9ole. Selection . Font. Name="黑體"ole. Selection . Font .bold=.F.注:該組命令要求先選中批注框,否則寫成ole. Range("a3"). Comment Shape. Font.
25、Size =9則出錯,不知為何!EXCEL表中工作表的數目及各工作表的名稱?*!* 58 如何取得當前ClearLocal ln SheetCou ntoExcel= Createobject ("EXCEL.APPLICATION")oExcel.WORKBOOKSOpen("c:/111/321.xls")With oExcelln SheetCou nt=.WorkBooks(1).Sheets.En dwith?'當前EXCEL表中工作表的數目為:'+ AlltrimFor Each oMyVar In oExcel.sheets
26、?'當前EXCEL表中工作表的名稱分別為Next oMyVaroExcel.WORKBOOKSClose &&關閉工作簿oExcel.Quit&&退岀 Excel&&創建Excel對象&&打開指定工作簿Count &&統計工作表數量(Str (lnSheetCount)'+oMyVar. Name &&顯示Excel表中所有工作表*!* 59 獲取工作表名稱在以下示例中,創建了一個 microsoft excel實例,添加了一個新的工作簿。使用foreach 語句顯示工作簿中每個工作
27、表的名稱。此示例要求在運行示例的機器上正確安裝microsoft exceloExcel = Create ("Excel.Application")oExcel.Workbooks. AddFor Each oMyVar In oExcel.sheets? oMyVar. NameNext oMyVar*!* 60 雖然用 APPEND From tx.Xls Type XL8 可以更簡單的追加數據,但有時會導致程序非法錯誤退岀(除非先另存為Excel 5.0 )*!* 61 VFP控制EXCL文件另存為 DBF ( EXCEL后臺運行)fil= Thisform丄ist
28、1. Value&&其值為一個包含路徑的文件名oExcel= Createobject('Excel.applicati on')oExcel.Workbooks. Open(fil)&&打開文件oExcel. Selection .AutoFilter&&關閉(如果無則打開)自動篩選oExcel. Range("A1:F1000").Select&&選中從第1行到1000行的前6列數據(另存后只有這些數據)asfil= Strtran ( Upper( Strtran (fil, Substr
29、 (fil,1,Rat (7',fil),'c:/windows/desktop/cphz/'),'.XLS','.dbf')&&要保存的文件名If File (asfil)Delete File & asfilEndifoExcel.ActiveWorkbook. SaveAs(asfil,8)&&另存為 DBFoExcel.ActiveWorkbook.saved=.T.&&不保存當前 EXCEL表oExcel.Workbooks.Close&&關閉表oExcel
30、.Quit&&退岀 EXCELRelease oExcel&&釋放變量*VFp中例*lcFileName='D:/TEST.XLS'oExcel= Createobject ('Excel.applicati on')oExcel.Workbooks. Open('&l cFileName')&&打開文件R=oExcel.SHEETS(1).UsedRange. Rows Count &&有數據的總行數C=oExcel.SHEETS(1).UsedRange. Columns
31、. Count &&有數據的總列數oExcel.Cells(R,C). Select&&選中數據oExcel. Selection .NumberFormatLocal = ""&&把被選定的單元格設為文本格式oExcel. Columns.AutoFit&&讓所有的列寬都自動調整oExcel.DisplayAlerts=.F.oExcel.ActiveWorkbook. SaveAs('D:/TEST.DBF',8)&&另存為 DBF*oExcel.ActiveWorkbook
32、.SaveAs('D:/NewTest.xls',39)&&另存為 5.0 的 Excel,或用 43 表示95/97格式&&不保存當前 EXCEL表oExcel.ActiveWorkbook.saved=.T.oExcel.Workbooks. Close&&關閉表oExcel.Quit&&退岀 EXCELRelease oExcel&&釋放變量Messagebox('Excel 文件:D:/TEST.XLS 另存為 D:/TEST.DBF 完成! ,64,'信息提示')*
33、VB.例j 子 *'功能:VB調用Excel,將一個Excel文件另存為 Dbf。'源Excel文件名'目標Dbf文件名Set oExcel = Createobject("Excel.Applicatio n")'創建Excel對象oExcel.Workbooks. Ope n (lcSFileName)'打開Excel 表*R = oExcel.SHEETS.UsedRa nge.ROWS.Cou nt '有數據的總行數*C = oExcel.SHEETS.UsedRa nge.Colum ns.Cou nt '有
34、數據的總列數*oExcel.Cells(R, C).Select '選中數據*oExcel.Colum ns.AutoFit'讓所有的列寬都自動調整'前提:要安裝 Excel'Dim oExcel As Object lcSFileName = "D:/test.xls" lcDFileName = "D:/test1.dbf"'不顯示提示框oExcel.DisplayAlerts = Flase oExcel.ActiveWorkbook. SaveAs FileName:=lcDFileName, FileFo
35、rmat:=8'不保存當前 EXCEL表oExcel.ActiveWorkbook.saved = Ture oExcel.Workbooks. Close '關閉表oExcel.Quit '退岀 EXCELSet oExcel = Nothi ng'釋放對象MsgBox ("Excel 文件:"& lcSFileName & "另存為"& lcDFileName & "完成!")*!* 62. VFP用ADC連接Excel,然后將Excel內容導岀 DBF的方法*-以下
36、代碼是將 123.XLS中的SHEET5中的內容轉換成RR.DBFoConn ecti on =Createobject ("adodb.c onn ecti on")&&建立連接對象With oConn ecti on.Co nn ectio nStri ng =卩 rovider=Microsoft. Jet.OLEDB.4.0;DataSource=d:/temp/123.xls;Exte nded Properties="excel 8.0;HDR=YES;IMEX=1;"Persist Security In fo=False&
37、#39;.OpenEn dwithoCo nn ectio n.EXECUTE('select * into dBase lll;DataBase=d:/temp.rr from sheet5$') oConn ecti on. Close*!* 63 .設置打印參數:用Excel做報表,可打印時怎么選擇打印機,即.ActiveWindow.SelectedSheets.PrintOut的參數有哪些?Expressi on .Pri ntOut(From, To, Copies, Preview , ActivePr in ter,PrintToFile,Collate , P
38、rToFileName)Expressi on必選。該表達式返回“應用于"列表中的某個對象。From Varia nt類型,可選。打印的開始頁號。如果省略該參數,將從起始位置開始打印。To Varia nt類型,可選。打印的終止頁號。如果省略該參數,將打印至最后一頁。Copies Varia nt類型,可選。要打印的份數。如果省略該參數,將只打印一份。PreviewVaria nt類型,可選。如果為 True貝U Microsoft Excel打印指定對象之前進行打印預覽。如果為False,或者省略此參數則立即打印該對象。ActivePri nter Varia nt類型,可選。設置
39、活動打印機的名稱。Prin tToFile Varia nt類型,可選。如果為True 則打印輸岀到文件。如果沒有指定PrToFileName,則 Microsoft Excel將提示用戶輸入要輸岀文件的文件名。CollateVaria nt類型,可選。如果為 True 則逐份打印每份副本。PrToFileName 可選,Variant類型。如果將 PrintToFile設置為True,則本參數指定要打印到的文件名。說明From 參數和 To 參數所描述的“頁”指的是要打印的頁,并非指定工作表或工作簿中的全部頁。*!* 64 如何用編程的方法打開有密碼的Excel文件?*Excel文件加了密碼
40、,如何在VFP中用編程的方式把密碼輸入,使Excel文件打開oExcel= Createobject ('Excel.applicati on')oExcel.Workbooks. Open("d:/22.xls")這樣還有一個密碼的對話框出來,需要輸入密碼才能打開文件。*!* 65 如何用編程的方法直接打開有密碼的Excel文件?oEle.Workbooks. Open("d:/22.xls",.F.,.F., ,"123","456")"123"表示打開權限的密碼,"
41、;456"表示修改權限的密碼*!* 66.如何將一個已知路徑的圖片插入到excel中.oexcell.ActiveSheet.PictureS. Insert ("圖片文件名")*!* 67.能不能指定在某一位置或區域放置圖片并控制圖片顯示大小呢?OLEAPP.SHEETS.Selectoleapp. Range("位置").Selectoleapp.ActiveSheet.PictureS. Insert ("圖片文件名"). Selectoleapp. Selection .ShapeRange.LockAspectRa
42、tio =.T.oleapp. Selection .ShapeRange. Height = 57*!* 68類型為字符型的字段輸岀到excel中,前面的零被自動去掉,例如“ 009877”變為“9877”,怎么解決?1. 在字符串前面加半角單引號“”,例如:o.Cells(1,1). Value ="'0123"或用變量cString=""'+"0123"&&其中0123可以取自表中一個字段o.Cells(1,1). Value =cStri ng&&o.Ra nge("A
43、1:A1").value=cStr ing2.oExcel.CELLS(1,1). Select&&或 eole.Range("A1:E1").SelectoExcel. Selection .NumberFormatLocal = ""&&把被選定的單元格設為文本格式oExcel.Cells(1,1). Value ="0123"&&給所選單元格覆值*!* 69 .在Excel中插入行和列:objExcel. Rows(1). Insert ()&&在第一行前
44、面插入一行objExcel. Columns(2). Insert ()&&在第二列前面插入一列*!* 70 .獲取Excel記錄數loXls = Createobject ("excel.applicati on")bookExcel = loXls. Application .Workbooks. Open("f:/pz.xls")n rows=bookExcel.Worksheets('pz')UsedRa nge =n rows.UsedRa nger=UsedRange. Rows Count &&
45、;有數據的總行數c=UsedRange. Columns. Count&&有數據的總列數loXls.Workbooks. CloseloXls.Quit*!* 71 在EXCEL中如何在打開文件的同時自動執行一個宏命令。 只要將宏的命名為 AUTO_OPEN即可。如果要在文件關閉時運行,則命名為auto_close 。*!* 72 .在VFP中可以執行EXCEL的選擇性粘貼嗎?.Range("A2").PasteSpecial ("xlPasteValues")&& 會岀錯.Range("A2").Pa
46、steSpecial (3)&& 也會岀錯.Range("A2").PasteSpecial&& 只好這樣了*!* 73 如何才能只粘貼值呢?xlPasteValues=-4163oExcel. Range("A1"). SelectoExcel. Selection .CopyoExcel. Range("B1")._PasteSpecial(xlPasteValues)* 注意:在 Excel 中,"xlPasteValues"是一個常量,它的值是一個數值型的:-4163oExc
47、el. Range("A1").CopyoExcel. Range("B3").PasteSpecial(8)&&粘貼行、列寬oExcel. Range("B3").PasteSpecial(-4122)&&粘貼格式*!* 74.如何從excel讀取數據*建立一個 excel對*Localhb1 As excel1. Applicationcsheetname= Trim ( Thisform .text2.Value ) &&讀取用戶要讀取 excel 的 sheet 名*讀取數據源所
48、在的EXCEL文件名*If Empty (Trim ( Thisformset .filepath)Messagebox ("請先選擇要導入的excel文件! ",0,"提示")Retur nEndifIf Empty (Trim (csheetname)Messagebox("請先選擇要導入的工作表sheet名稱! ",0,"提示")Retur nEndifTryhb仁Createobject ("excel.applicati on")CatchMessagebox ("請檢查你是
49、否已安裝microsoft excel 應用程序! ",0,"提示")En dtry*打開EXCELS象,開始讀取數據*HB1.workbooks. Open(Trim (Thisformset .filepath)hb1.Sheets(csheet name).SelectSele Store &&這是要讀取的數據存放的表Zapisen d=.F.&&用于判斷是否記錄已到底i=1Do Whileise nd=.F.Appe nd Bla nkcrq= Dtoc (drq)cdh=hb1.Cells(i,1). ValueIf Is
50、 null(cdh)cdh=""En dif*用于判斷數據類型,數據類型一定要判斷是否為NULL, *然后如果不是指定的類型,還要進行轉換 *If Type ("cdh")v>Ccdh= Alltrim (Str (cdh)En difcdwmc=Trim (hb1.Cells(i,2). Value)If Is null (cdwmc)cdwmc=""En difcgg=hb1.Cells(i,3). ValueIf Is null (cgg)cgg=""ElseIf Type ("cgg&quo
51、t;)<>Ccgg= Alltrim (Str (cgg)En difEndifcjldw=hb1.Cells(i,4). ValueIf Is null (cjldw)cjldw=""En dif(cjldw)cjldw= Iif (Type("jldw")<>"C", Alltrim (Str (cjldw), Alltrimn sl=hb1.Cells(i,5).ValueIf Is null (nsl)n sl=0En difcch= Trim (hb1.Cells(i,6). Value)If Is
52、null(cch)cch="En difcxh=hb1.Cells(i,8). ValueIf Is null (cxh)cxh=""ElseIf Type ("cxh")v>Ccxh= Trim ( Str (cxh)Elsecxh= Trim (cxh)En difEndifccpmc=hb1.Cells(i,9). ValueIf Is null (ccpmc)ccpmc=''En difIf Type ("ccpmc")<>Cccpmc= Alltrim (Str (ccpmc)El
53、seccpmc=Trim (ccpmc)En difSelect StoreReplace rq With crq,dh With cdh,dwmc With cdwmc,gg WithcggjldwWith cjldw,sl With nsl,ch With cch,cpbh With cxh,cpmc With ccpmci=i+1&&如果一行全為空,記作記錄到底,如果中間存在多行的問題,我沒有做考慮*If Empty (cxh) And nsl=0 AndEmpty(cch) And Empty(cjldw) And Empty(cdh)And Empty(cgg)ise
54、 nd=.T.En difEn ddoDele&&最后一行為空行,刪除Wait"共轉換得到"+Alltrim (Str (Reccount ()+" 條記錄! " Window Timeout2hb1.Quit*!* 75本程序通過將原 dbf表拷成excel格式,然后導入并設置報表格式Paratable nameLocalhb1 As excel. ApplicationWait"正在導出數據,請稍侯"Win dow At 20,30 Timeout 1bhaveerror=.F.&&定義一個變量判斷
55、是否發生錯誤Tryhb1= Createobject ("excel.applicatio n")CatchMessagebox ("請檢查你是否已安裝microsoft excel 應用程序! ",0,"提示")bhaveerror=.T.En dtryIf bhaveerror=.T.Retur nEndifIf Right (curr_path,1)<>7curr_path=curr_path+"/"Endifctable name=table name+"_excel"fil
56、epath=curr_path+"temp/sheet1.xls"*filepath="temp/sheet1.xls"If ! File (filepath)Messagebox("數據源的excel文件未生成,報表生成被終止!")Retur nEndifHB1.workbooks. Open(filepath)HB1.SHEETS("sheet1"). Selecthb1.sheets(1).Rows(1).e ntirerow.In serthb1.sheets(1).Rows(1).e ntirerow.I
57、n sertSele (ctable name) nfieldcount=Fcou nt () nreccount= Reccount () hbdygs="A1:"+ Chr( nfieldcou nt+64)+"2"HB1.Ra nge(hbdygs). Select*合并兩行作為報表標題*&&水平方向2左對齊,3居中,4右對齊&&垂直方向1靠上,2居中,3靠下HB1. Selectio n .Horizo ntalAlig nment = 3HB1. Selection .VerticalAlig nment = 2
58、HBI.Selection.WrapText = .F.&& ?HBI.Selection.Orie ntatio n = 0&& ?HBI.Selection.Add In de nt = .F.&& ?HBI.Selection.Shri nkToFit = .F.&& ?HBI.Selection.MergeCells = .T.&& ?請輸入報表標題“HBI.Ra nge(hbdygs).FormulaR1C1 ="HBI.Range(hbdygs).Characters.Font. Name =
59、"隸書"HB1. Range(hbdygs).Characters.Font .FontStyle ="常規"HBI.Range(hbdygs).Characters.Font .ColorIndex = 1&&字符顏色*根據數據源表結構的寬度設置列的寬度*Copy Stru Exte To temp/term_struSele 0Use temp/term_struSelect(ctable name)For i=1 To n fieldcou ntcvalue= Allt (Field (i)Select term_struLoca
60、For Lower (Allt (field_name)=cvalueIf Fou nd ()colum nn ame= Chr(i+64)+":"+Chr(i+64)hbl. Columns(columnname).ColumnWidth=field_lenEn difSele(ctable name)En dforSele term_struUseactivecellname=Chr(nfieldcount+64)+Allt (Str (nreccount+3)*設置數據區域的字體格式*HB1. Ran ge("A3:"+activecell nam
61、e).Characters.HB1. Ran ge("A3:"+activecell name).Characters.HB1. Ran ge("A3:"+activecell name).SelectFont. Name ="宋體"Font. Size = 9hb1. Selection .BorderS(1).L in eStyle = .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*!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新式茶飲合作協議書
- 腫瘤TNM分期系統解析
- 夫妻忠誠協議:出軌行為處罰與賠償細則
- 微信小程序電商運營培訓與市場拓展協議
- 學區房學位名額限時搶購買賣合同
- 時尚家居品牌代言人合作協議書
- 通信設備供應商投標人合規性審查及售后服務協議
- 生物醫藥創新藥研發項目股權合作框架協議
- 全方位美容美發連鎖品牌授權合作協議
- 影視燈光控制臺租賃與燈光設備租賃運營協議
- 2025江蘇南京大數據集團有限公司招聘45人筆試參考題庫附帶答案詳解
- 2025呼倫貝爾農墾集團有限公司校園招聘44人筆試參考題庫附帶答案詳解
- 高等數學-第十二章-無窮級數
- 郵政寄遞安全培訓
- 狂犬病知識教學課件
- 血透室手衛生規范
- 儲能測試面試題及答案
- 銷售公司內勤員工績效考核制度
- 社工招聘筆試題庫及答案
- 2025年-山東省建筑安全員A證考試題庫附答案
- 電子商務教學技術應用試題及答案
評論
0/150
提交評論