1. 程式人生 > >java無依賴讀取Excel文件

java無依賴讀取Excel文件

mil 依賴 text man end -m pen jdb eat

說到Java讀取Excel文件,用得多的當然是POI或jxls,但今天在看一本書的時候。當中提到使用JdbcOdbcDriver這個驅動類在不依賴第三方庫的情況下也能夠完畢對Excel文件的讀取操作,網上搜了一下原因然後自己寫了個樣例跑通了,在此記錄一下。

Java讀取數據庫大家都非常熟悉,須要一個數據源與對應的驅動。開發人員通過JDBC操作驅動。驅動再去操作數據庫。那麽Java讀取Excel文件也是類似的。在Windows系統中,能夠將一個Excel文件註冊為一個ODBC數據源,註冊過程為:
a.控制面版>管理工具>數據源(ODBC)

b.在用戶DSN選項卡中點擊加入,選擇Driver do Microsoft Excel(*.xls)

技術分享

c.點擊完畢,填入數據源名稱。最後選擇簿,即選擇作為數據源的Excel文件地址
當中數據源名稱最為重要。它會作為獲取連接的URL的一部分。

註冊好數據源後就能夠寫代碼了,一個示比例如以下:

public class ExcelReader {
	private String entry;//ODBC數據源名稱
	
	public ExcelReader(String entry) {
		this.entry = entry;
	}
	
	//sheetName為工作表名稱
	public String read(String sheetName) throws Exception {
		StringBuilder builder = new StringBuilder();
		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
		Connection connection = DriverManager.getConnection("jdbc:odbc:" + entry);
		Statement statement = connection.createStatement();
		ResultSet rs = statement.executeQuery("select * from [" + sheetName + "$]");
		while(rs.next()) {
			builder.append(rs.getObject(1));//示意性僅僅讀取一列
		}
		rs.close();
		statement.close();
		connection.close();
		return builder.toString();
	}
	
	public static void main(String[] args) throws Exception {
		ExcelReader reader = new ExcelReader("etl");
		System.out.println(reader.read("test"));
	}
}

其原理是:開發都通過JDBC操作JdbcOdbcDriver驅動,JdbcOdbcDriver驅動連接ODBC數據源。然後ODBC操作連接Excel文件(Windows完畢)。通過一步步地適配從而完畢讀取Excel文件的目的。


java無依賴讀取Excel文件