Java實現excel匯入功能(1)
阿新 • • 發佈:2019-01-24
今天要做一個Java實現excel匯入的功能,到網上看大神們寫的demo,都是超級麻煩,其實通常我們需要的只是一個很小很小的demo,搞清楚它的思路就行了,但是大神們寫的都是非常完善,甚至連線資料庫的程式碼都貼了出來。對於我們菜鳥來說,肯定不可能去把這大量的程式碼粘下來,甚至還要建立對應的資料庫,到頭來一執行,報了一螢幕的錯誤,無從下手。下面我就把我實現的匯入excel的程式碼貼上。
匯入excel的第三方包常用的有兩個:poi-3.11-20141221.jar和jxl.jar
對於菜鳥們來說jxl.jar是個不錯的選擇,輕量級的,我這用的就是它,下面上程式碼。
import java.io.*; import jxl.Sheet; import jxl.Workbook; import jxl.read.biff.BiffException; /** * 建立日期:2015-1-7下午3:14:44 作者:admin TODO **/ public class Test { public static void main(String[] args) throws BiffException, IOException { File file = new File("d:\\1.xls"); Workbook rwb = Workbook.getWorkbook(file); Sheet rs = rwb.getSheet(0);// 或者rwb.getSheet(0) int clos = rs.getColumns();// 得到所有的列 int rows = rs.getRows();// 得到所有的行 System.out.println("clos" + clos + " rows:" + rows); for (int i = 1; i < rows; i++) { for (int j = 0; j < clos; j++) { // 第一個是列數,第二個是行數 String name = rs.getCell(j++, i).getContents();// 預設最左邊編號也算一列 // 所以這裡得j++ String phon = rs.getCell(j++, i).getContents(); System.out.println(" name:" + name + " phon:" + phon); /* * list.add(new StuEntity(Integer.parseInt(id), name, sex, * Integer.parseInt(num))); */ } } } }
以上就是全部程式碼了,很簡單,只是一個小demo,需要把資料持久化的話讀者可以根據自己的需要去寫持久化的類。
下面說一下我遇到的問題:
jxl.read.biff.BiffException: Unable to recognize OLE stream
這是因為不支出讀取 excel 2007 檔案(*.xlsx)。只支援 excel 2003 (*.xls)。
下一篇文章中會講講如何匯入(*.xlsx)檔案。