標籤:entry .exe 技術分享 控制 obj mic style return 技術
說到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檔案