最近無聊,把n年前寫了半截的記事本翻出來,完成後,就想著能不能把excel,word中文字也讀出來?過程中遇到了很多問題,網上找了找,自己玩了下,終於搞定,現在我的記事本能讀一半的txt、excel、word,當然為了保持記事本的簡潔性,讀出的word、excel只有單純的文本信息,有時間再完善吧。現在把這些東西整理下,為了我寫起來方便,大家讀起來簡潔,此篇先說java操作EXCEL吧。
java操作excel網上普遍的說法是有兩種方式:JExcel和POI。我只嘗試了第一種。JExcel是Java Excel的縮寫,一個開源項目,用它程序員可以讀取、創建、更新Excel文件。官方網站:http://jexcelapi.sourceforge.net/ 去看看更新和下載相應的jar包,不過官網很不穩定,反正我從那裡沒下到,確實需要的朋友去網上找找,還是很多的,也可以聯系我。
1.解壓下到的jexcelapi壓縮包,裡面有jar包jxl.jar。將其引用至你的項目,方法有很多,我就不說了。其他文件就是一些例子,api幫助文檔等等。
2.開始書寫你的程序。
用的方法也很簡單,總的來說就是,獲取上傳excel文檔的路徑,根據路徑創建工作簿。然後按sheet頁,行,列,去取每個cell單元格中的值,存到你想存的位置就ok了。
3.看下代碼,應該就很清楚了吧。
//獲取上傳文件的路徑
FileDialog fd = new FileDialog(jf,"打開",FileDialog.LOAD);//打開上傳文檔對話框,jf是我定義的JFrame
fd.setVisible(true);
String file_dir = fd.getDirectory() + fd.getFile();//這就是要獲取的路徑了,如:"C:\新建.txt"
//根據路徑實例化文件
File file = new File(file_dir);
//轉為excel工作簿
Workbook book = Workbook.getWorkbook(file); //Workbook 是jxl.jar中的,需要引入它
Sheet[] sheets = book.getSheets();//取工作簿中每個sheet頁,將其存數這樣的數組中。
Sheet sheet = sheets[i];//得到具體的一頁
int row = sheet.getRows();//獲取每頁的行數
Cell[] cells = sheet.getRow(j);//獲取一行中的多個單元格
cells [j]; //具體的一個單元格
下來對數據怎樣操作就隨你了。
這裡我只描述了讀文件操作,至於更復雜的,相信到了這裡也就可以自己琢磨了吧。
哈哈,給張效果圖,讀取excel的效果: