Java + Excel = JXL

講到試算表,大家最熟悉的應該就是 Microsoft Office Excel 了吧!但其實大部分的人都只會基本的 Excel 操作及運算,Excel 其實有很多非常強大的功能,這篇文章其實不是教大家怎麼使用 Excel,小蛙也只會基本的操作,由於 Excel 所包含的強大功能,以致於現在有很多資料都是採用 Excel 儲存,像小蛙的其中一項工作就是把某些單位中的資料匯入到資料庫中,而某些單位提供給小蛙的資料就是 Excel,小蛙要做的事情就是必須先從 Excel 中把資料截取出來,才能做後續的操作以利於塞入特定資料庫中。這篇文章要介紹怎麼使用 Java 讀取 Excel 內容。

要在 Java 中操作 Excel 必須先下載Java Excel API。這邊小蛙下載最新版的 JExecelApi v2.6.12。

下載到桌面後,我們只需要壓縮檔中的 jxl.jar 檔案,可以透過 WinRAR (WinZip or 7zip …等)解壓縮軟體取得 jxl.jar。

解壓縮後可以得到 jexcelapi,而我們要的 jxl.jar 在 jexcelapi 資料夾內。如果你的使用方式跟小蛙一樣,直接點兩下開啟 WinRAR 介面的話,就可以直接拖曳著 jxl.jar到桌面,而不用解壓縮整個檔案。

接下來要把這個 jar 檔放進專案中讓我們可以透過 Eclipse 使用,之前小蛙會將所有使用到的 Library 都放置在一個資料夾,讓不同專案可以去 include,但後來工讀生盛哥(組內最強)建議可以每個專案中都建立一個lib資料夾,裡面專門放置這個專案會用到的函式庫,雖然可能會造成空間浪費(同一個套件複製好幾份在不同專案中),但到時候要維護或是打包之類的會方便許多。下圖是在專案中建立一個 Folder 的操作,在專案上按右鍵 -> New -> Folder。

輸入 Folder 名稱。

就會出現在 Eclipse 介面中的專案裡了。

光是這樣 Eclipse 還沒辦法使用這個Jar的功能喔!接著我們要讓 Eclipse 可以”認得”這個 Jar。在剛剛的 jar 上面點選滑鼠右鍵,選擇 Build Path -> Add to Build Path。

上圖的 jxl.jar 變成下圖這個樣子,並且在 Referenced Libraries 中出現了一個 jxl.jar。

接下來介紹 JXL 的使用方法。

// 要注意如果檔案路徑中有「\」必須用「\\」或「/」取代掉
// 使用JXL必須先建立一個Workbook,讀取方法如下。
// 小蛙測試的時候 xlsx 的檔案會發生錯誤
Workbook workbook = Workbook.getWorkbook(new File("E:\\鄉鎮區中英文.xls"));
// 接著建立 Sheet,Workbook可以看成是一個excel檔案,Sheet顧名思義就是一個頁籤。
// 可以直接 getSheet(0) 表示第一個頁籤(從0開始算)
// 也可以透過 getSheet("頁籤名稱") 來取得頁籤
Sheet sheet = workbook.getSheet(0);
// 讀取儲存格(Cell)的方法,getCell(Columns, Rows),也是一樣從0開始(直,橫)
Cell c = sheet.getCell(j, i); 
// 要一列一列往下讀的方式,印出每一行的內容
for(int i = 0; i < sheet.getRows(); i++){
    for(int j = 0; j < sheet.getColumns(); j++){
        Cell c = sheet.getCell(j, i);
        String s = c.getContents();
        System.out.println(s);
    }
    System.out.println("-------");
}

這邊小蛙介紹一個 Eclipse 小技巧。把上面的程式貼在 Eclipse 裡面卻發現有紅色的底線,是 Eclipse 告訴開發者你這行程式有錯誤喔!並且提供貼心小建議,左邊有一個叉叉,點選滑鼠左鍵可以看到 Eclipse 給了幾個貼心的小建議,例如下圖 Eclipse 就告訴開發者可能是少 import java.io.File; … 等等,雖然不一定每次都會正確,這個便利的設計可以讓開發者少打一些字,也可以更快找出錯誤的原因。

下圖是必須做Exception判斷。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *