1. 程式人生 > >Java實現excel匯入功能(1)

Java實現excel匯入功能(1)

今天要做一個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)檔案。