国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

教你如何使用Java讀取Excel文件內容

2019-11-18 11:49:10
字體:
來源:轉載
供稿:網友

  問題:我能用java讀取一個Excel文件嗎?假如能,怎么做?
  
  回答:是的,可以用Java讀取Microsoft Excel文件。微軟提供了一個Excel的ODBC驅動程序,因此我們就可以使用JDBC和Sun的JDBC-ODBC驅動來讀取Excel文件了。
  
  假如你有個Excel文件,名為Book1.xls(譯者注:由于原文的例子我沒有下載下來,所以我用了自己的例子),并且,該文件中有一個工作表(sheet)名為Sheet1
  
  微軟的ODBC驅動程序把工作表中的第一行作為列名(譯者注:即字段名),工作表名作為數據庫表名。
  
  要通過JDBC訪問工作表,我們還必須創建一個新的ODBC數據源,在windows 2000系統上創建數據源的過程如下:
  
  進入“控制面板” --> “治理工具” --> “數據源(ODBC)”,(譯者注:打開后選擇系統DSN),點擊添加,在彈出窗口中選擇“Driver do Microsoft Excel(*.xls)”
  
  然后在數據源名處輸入你一個名字Book1(譯者注:相當于數據庫名),然后點擊“選擇工作簿”,然后找到并選取你的Excel文件
  
  點擊確定后,系統數據源列表中會出現你設置的數據源名稱,
  
  現在數據表已經在數據源列表里了(譯者注:點擊確定完成配置)。
  
 ?。ㄗg者注:我的例子中)現在假如我們想挑出test1列中的所有“測試”值,那就需要用以下的SQL查詢:
  
  SELECT test1 FROM [Sheet1$] WHERE test1='測試'
  
  要注重的是工作表名后面跟了一個“$”符號,這個符號是不可缺少的。為什么?因為他的前后有方括號,因為“$”是SQL語句中的保留字。Life is never easy(譯者注:作者發感慨了)。
  
  下面是例子程序:
  
  import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.DriverManager;public class ExcelReader {  public static void main( String[] args ) {    Connection c = null;    Statement stmnt = null;    try {      Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );      c = DriverManager.getConnection( "jdbc:odbc:Book1", "", "" );      stmnt = c.createStatement();      String query = "SELECT test1 FROM [Sheet1$] WHERE test1='測試'";      ResultSet rs = stmnt.executeQuery( query );            System.out.  
  在此程序中,主函數main() 建立了一個數據表的連接,并取出符合條件的記錄。
  
 ?。ㄗg者注:另外,我這里還有一段程序,是讀取所有記錄的程序,僅作參考):
  
  import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.DriverManager; public class ExcelReader {   public static void main(String[] args){    Connection connection = null;     try{      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");      Connection con = DriverManager.getConnection( "jdbc:odbc:Book1","","" );      Statement st = con.createStatement();      ResultSet rs = st.executeQuery( "SELECT * FROM [Sheet1$]" );       ResultSetMetaData rsmd = rs.getMetaData();      int numberOfColumns = rsmd.getColumnCount();       while (rs.next()) {        for (int i = 1; i <= numberOfColumns; i++) {          if(i>1) //用逗號分隔各列   System.out.print(", ");          String columnValue = rs.getString(i);          System.out.print(columnValue);        }        System.out.println("");      }       st.close();      con.close();     } catch(Exception ex) {      System.err.print("Exception: ");      System.err.println(ex.getMessage());    }  }}
  lose();     } catch(Exception ex) {      System.err.print("Exception: ");      System.err.println(ex.getMessage());    }  }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 舒兰市| 杂多县| 仲巴县| 牙克石市| 桑日县| 南充市| 略阳县| 林州市| 秀山| 宝山区| 任丘市| 正阳县| 永靖县| 巩留县| 伊通| 海原县| 商洛市| 乐清市| 新河县| 凤翔县| 运城市| 陵川县| 靖边县| 壶关县| 修武县| 樟树市| 华坪县| 寻乌县| 亳州市| 扬中市| 深州市| 斗六市| 松阳县| 栾川县| 永康市| 钟祥市| 望奎县| 河池市| 和政县| 延边| 丹寨县|