java無依賴讀取Excel文件
阿新 • • 發佈:2017-06-04
mil 依賴 text man end -m pen jdb eat
說到Java讀取Excel文件,用得多的當然是POI或jxls,但今天在看一本書的時候。當中提到使用JdbcOdbcDriver這個驅動類在不依賴第三方庫的情況下也能夠完畢對Excel文件的讀取操作,網上搜了一下原因然後自己寫了個樣例跑通了,在此記錄一下。
Java讀取數據庫大家都非常熟悉,須要一個數據源與對應的驅動。開發人員通過JDBC操作驅動。驅動再去操作數據庫。那麽Java讀取Excel文件也是類似的。在Windows系統中,能夠將一個Excel文件註冊為一個ODBC數據源,註冊過程為:
a.控制面版>管理工具>數據源(ODBC)
當中數據源名稱最為重要。它會作為獲取連接的URL的一部分。
其原理是:開發都通過JDBC操作JdbcOdbcDriver驅動,JdbcOdbcDriver驅動連接ODBC數據源。然後ODBC操作連接Excel文件(Windows完畢)。通過一步步地適配從而完畢讀取Excel文件的目的。
Java讀取數據庫大家都非常熟悉,須要一個數據源與對應的驅動。開發人員通過JDBC操作驅動。驅動再去操作數據庫。那麽Java讀取Excel文件也是類似的。在Windows系統中,能夠將一個Excel文件註冊為一個ODBC數據源,註冊過程為:
a.控制面版>管理工具>數據源(ODBC)
b.在用戶DSN選項卡中點擊加入,選擇Driver do Microsoft Excel(*.xls)
當中數據源名稱最為重要。它會作為獲取連接的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文件