陳新龍
有些辦公室工作中會重復處理一些數據,比如提取Word和Excel中的一些數據信息進行處理,然后將處理完的信息填充到新的Word和Excel文檔中。這樣的需求可以用Java來完成。由于這類需求具體操作過程因人而異,我們在此做一個簡單的例子,實際操作并不是想象的那么復雜,整個過程還是蠻有意思的,今天就和大家一起來分享分享。
與我們之前介紹的編程語言不同,本次的開發語言是Java、開發環境是IDEA。選擇Java是因為該語言本身是一門面向對象的編程語言(Scratch雖然是最基礎的入門語言,但也是一門面向對象的編程語言,只不過是通過圖形的方式讓我們更加容易上手與操作)。Java是目前應用最為廣泛的軟件開發平臺之一。隨著Java社區的不斷壯大Java 也早已不再是簡簡單單的一門計算機語言了,它更是一個平臺、一種文化、一個社區。作為一個活躍的社區,Java擁有全世界最多的技術擁護者和開源社區支持,有數不清的論壇和資料。從桌面應用軟件、嵌入式開發到企業級應用、后臺服務器、中間件,都可以看到Java的身影。有這么多資源我們想要完成目標也更加容易。
創建一個maven的web項目,會生成一個pom.xml文件,開發者可以通過整個文件的配置使用maven自動下載第三方jar包,而整個jar包就是別人已經寫好的一些類,然后將這些類進行打包,我們可以將這些jar包引入到項目中。然后就可以使用這些jar包中的類和屬性以及方法了。
我們所使用的Poi就是Java操作Office文件的函數庫。首先我們需要在pom.xml中添加對應的依賴信息。<dependency>由<groupId>組織、<artifactId>項目通用名稱、<version>版本號構成,三個部分缺一不可,依賴導入完成之后我們可以點右側的maven檢查Dependencies中是否包含這些依賴信息。

Poi中包括了一系列的API(應用程序接口,簡單點來說Poi幫助我們完成了很多方法,我們直接使用即可,不需要關心內部的實現原理),通過調取Poi的方法可以讓我們更方便地操作Excel和Word等文件。例如修改文件的內容,提取文件的信息等等。
下面看看Poi怎么處理Word文檔的一些應用場景,很多時候我們在網上填寫相應的信息后,系統便會自動下載一份對應的Word文檔供我們參考,在下載之前程序已經幫助我們在文檔對應的位置上填充好了相應的信息,那么網站是怎么做到的呢?

例如需要我們準備一份自我介紹的Word模板:我叫XXX,今年XX歲,來自XXX。需要修改信息的地方通過{{EnglishName}}這樣雙大括號中間加入英文名稱來替代。這樣做的目的是方便識別與處理。
編寫代碼前我們需要將模板文件的目錄信息記錄下來用作方法的參數。在程序運行后,Java會根據事先準備好的路徑把電腦中的文件封裝為一個File類,然后使用File類對文件進行操作。
接下來通過FileInputStream的方式將文件轉化為文件流方便我們后續進行處理,由于事先已經導入了Poi的依賴,我們可以使用內置的功能HWPFDocument來幫助我們讀取doc文件。注意doc和docx有一定的區別:doc是Word 2003使用的文檔格式,而docx是Word 2007使用的文檔格式。通過HWPFDocument讀取到doc文件后,通過getRange()方法來獲取doc文檔中的全部內容。

拿到內容信息后,通過replaceText方法進行修改,修改的時候需要傳入兩個參數,前者表示需要替換的內容,后者表示替換值的內容。替換成功后我們可以將文件保存到本地磁盤信息中。替換完成后在Word文檔中看看最終效果。

通過Poi我們不僅可以操作Word文檔內容,還可以操作Excel表格進行處理,我們今天講的替換僅僅是最簡單的入門用法,在后期的教程中我也會繼續給大家分享Poi的強大之處,如果你感興趣也可以閱讀相關的文檔資料擴展自己的視野,推薦一個不錯的學習網址:http://deepoove.com/Poi-tl/。