講到試算表,大家最熟悉的應該就是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判斷。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *