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