李成華,陳代鑫,劉隕雙,周盼盼,何源源
(中航工業(yè)成都飛機(jī)工業(yè)(集團(tuán))有限責(zé)任公司,成都 610092)
基于Excel二次開發(fā)的批量文件搜索及自動(dòng)下載技術(shù)的研究
李成華,陳代鑫,劉隕雙,周盼盼,何源源
(中航工業(yè)成都飛機(jī)工業(yè)(集團(tuán))有限責(zé)任公司,成都 610092)
在航空制造行業(yè)中,零件圖包通常存儲(chǔ)在遠(yuǎn)程FTP服務(wù)器上,零件承接單位目前只能逐項(xiàng)搜索下載遠(yuǎn)程文件,效率低。通過(guò)對(duì)Excel進(jìn)行二次開發(fā)工具軟件實(shí)現(xiàn)依據(jù)項(xiàng)目清單,自動(dòng)批量的從FTP服務(wù)器下載文件,并將不同圖號(hào)的文件分類存儲(chǔ)在對(duì)應(yīng)圖號(hào)的文件夾下,軟件的使用不但大大提高了文件下載效率,而且將文件進(jìn)行分類存儲(chǔ),方便管理。
EXCEL;二次開發(fā);批量;自動(dòng);文件下載;超鏈接
在遠(yuǎn)程傳輸文件中通?;贔TP協(xié)議的,將文件存儲(chǔ)在遠(yuǎn)程FTP服務(wù)器上,客戶端通過(guò)登錄FTP客戶程序連接遠(yuǎn)端服務(wù)器進(jìn)行文件的下載或上傳。在航空制造領(lǐng)域,很多民機(jī)項(xiàng)目的相關(guān)文件都以FTP的方式進(jìn)行訪問,承接零件制造單位通常會(huì)通過(guò)零件清單逐項(xiàng)從FTP服務(wù)器上搜索下載數(shù)模和相關(guān)文件,搜索方式類似于Windows資源管理器的搜索方式。零件項(xiàng)數(shù)通常上千項(xiàng),下載文件將是人工不斷的重復(fù)同一個(gè)過(guò)程,效率低。
通過(guò)對(duì)文件下載過(guò)程的分析發(fā)現(xiàn),如果每次能靠計(jì)算機(jī)輸入相應(yīng)圖號(hào)進(jìn)行查找,查找到文件就進(jìn)行文件的下載,那么就可以實(shí)現(xiàn)批量下載了。文件查找和文件下載在VBA中都有對(duì)應(yīng)功能的函數(shù),因此可以通過(guò)VBA對(duì)Excel進(jìn)行二次開發(fā)實(shí)現(xiàn)文件的批量下載及文件的分類存儲(chǔ)。
Excel二次開發(fā)可以通過(guò)三種方式來(lái)進(jìn)行[1]。
1)VBA的內(nèi)部開發(fā)
所謂內(nèi)部開發(fā),指的是使用Excel內(nèi)嵌的VBA來(lái)開發(fā)。用VBA進(jìn)行Excel的二次開發(fā),簡(jiǎn)單、方便、效率高,并且用它開發(fā)的程序也可以使用自己設(shè)計(jì)的界面,把數(shù)據(jù)存放在Excel的單元格中。
2)COM插件開發(fā)
所謂的COM是Component Object Model的縮寫是組件對(duì)象模型的意思,COM插件也叫COM加載項(xiàng),實(shí)際上是一個(gè)動(dòng)態(tài)鏈接庫(kù),我們可以開發(fā)程序作為一個(gè)鏈接庫(kù)鏈接到一些程序中,從而擴(kuò)展其功能。通常的COM插件是沒有自己的界面,只是在宿主應(yīng)用程序中集成一個(gè)菜單或者命令條,然后等待響應(yīng)。
3)自動(dòng)化應(yīng)用接口(Automation API)
此種方式是通過(guò)VB,VC等高級(jí)編程語(yǔ)言,利用Automation技術(shù)來(lái)調(diào)用Excel,執(zhí)行Excel提供的眾多命令,完成需要的操作。
從需求和效率方面考慮,本文采用VBA來(lái)進(jìn)行二次開發(fā),完成文件的批量下載及文件的分類存儲(chǔ)。
2.1 總體思路
本程序操作對(duì)象為服務(wù)器上的文件,通過(guò)讀取Excel清單中的零件圖號(hào),程序自動(dòng)在服務(wù)器上面去搜索與該圖號(hào)相關(guān)的文件,找到文件即進(jìn)行下載,當(dāng)程序循環(huán)完清單中的零件圖號(hào)后整個(gè)清單中圖號(hào)相關(guān)的文件也完成下載。文件下載完成后,通過(guò)程序自動(dòng)將文件進(jìn)行超鏈接,形成文件清單總報(bào)表并方便快速訪問文件。
2.2 關(guān)鍵技術(shù)
1)基于循環(huán)嵌套的文件搜索算法
由于要下載與清單相關(guān)的所有文件,外層循環(huán)為清單中圖號(hào)的循環(huán),內(nèi)嵌循環(huán)為與清單中某項(xiàng)圖號(hào)相匹配文檔文件搜索的循環(huán),內(nèi)嵌循環(huán)查找出與圖號(hào)相關(guān)的所有文件。通過(guò)循環(huán)的嵌套,實(shí)現(xiàn)文件批量下載。程序流程圖如圖1所示。
圖1 程序流程圖
文件批量下載的核心偽代碼如下:
文件下載至本機(jī)后,依據(jù)圖號(hào)份文件圖號(hào)存儲(chǔ),方便我們了解相關(guān)圖號(hào)下的文件種類和數(shù)量,有助于文件的管理。文件在服務(wù)器上和本機(jī)上的存儲(chǔ)情況對(duì)比如圖2所示。
圖2 文件存儲(chǔ)方式
2)文件超鏈接形成文件總目錄
文件下載后存放在本機(jī),如果我們只是利用Windows系統(tǒng)自帶的資源管理器來(lái)管理文件,那么我們?cè)L問文件必須逐級(jí)打開文件夾訪問,其次從面上來(lái)講我們不能方便的知道項(xiàng)目包具體都存在哪些文件。以上問題可以通過(guò)文件的超鏈接實(shí)現(xiàn),在Excel中建立整個(gè)項(xiàng)目包的超鏈接,通過(guò)超鏈接可以快速打開相應(yīng)文件,提高文件訪問效率;超鏈接可以顯示相應(yīng)的文件名,形成了項(xiàng)目文件明細(xì)清單。超鏈接單元格與其他單元格一
【】【】樣,可通過(guò)Excel自帶的查找快速定位文件、利用條件格式功能可以快速的對(duì)自己關(guān)心的文件做特殊標(biāo)識(shí),優(yōu)化文件管理的方式。
文件進(jìn)行超鏈接的核心偽代碼如下:
Research on batch files search and automatic download based on EXCEL re-developing technology
LI Cheng-hua, CHEN Dai-xin, LIU Yun-shuang, ZHOU Pan-pan, HE Yuan-yuan
TP311.56
:A
1009-0134(2017)01-0102-03
2016-08-12
李成華(1989 -),男,重慶人,工程師,碩士研究生,研究方向?yàn)闄C(jī)械制造、加工工藝、企業(yè)管理信息化、CATIA和Access二次開發(fā)等。