在數(shù)據(jù)庫的編程應(yīng)用中經(jīng)常用到將數(shù)據(jù)從一種文件格式轉(zhuǎn)變另一種格式,這時(shí)OLE是一種上上之選,OLE技術(shù)以其易用性以及平臺(tái)無關(guān)性成為了編程人員的上上之選。不過我們?cè)陂_發(fā)程序時(shí),一個(gè)模塊一般只能用于將一個(gè)數(shù)據(jù)表導(dǎo)出因?yàn)閷?dǎo)出數(shù)據(jù)內(nèi)容受表結(jié)構(gòu)的限制,表結(jié)構(gòu)不同則編程中必須要做一切改動(dòng)。筆者在開發(fā)一個(gè)學(xué)務(wù)管理系統(tǒng)的過程就遇到這類問題。經(jīng)過一番探索筆者巧妙地結(jié)合VFP函數(shù)成功實(shí)現(xiàn)了表文件無關(guān)地導(dǎo)出。最后成功實(shí)現(xiàn)了將源表導(dǎo)出到EXCEL中。特此提出以供大家討論,同時(shí)借此拋磚引玉,還望高手不吝賜教。 其實(shí)筆者所用的原理很簡單。主要使用了Visual Foxpro中的FCOUNT()與FIELDS函數(shù)。打開表后利用FCOUNT()函數(shù)取得了表中的字段個(gè)數(shù)。然后用FIELDS()函數(shù)設(shè)法取得各個(gè)字段的字段名。這樣問題就基本解決了。不過在實(shí)踐中筆者發(fā)現(xiàn)僅取得了字段名還不能取得記錄中各字段的值,筆者利用宏替代暫時(shí)解決了此問題。如果哪位高手有更好的方法。還望指教。 源碼清單: local myoleapp local myfilename local myfield yfilename=getfile("*.dbf")&&得到源表 myoleapp=createobject("excel.application") &&創(chuàng)建OLE對(duì)象 myoleapp.visible=.t. myoleapp.workbooks.add use &myfilename myoleapp.activeworkboods.saveas("myxls.xls") |
|