首頁  >  文章  >  Java  >  如何使用Java讀取Excel文件內容

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

WBOY
WBOY轉載
2023-05-02 10:31:172313瀏覽

問題:我能用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檔案

點選確定後,系統資料來源清單中會出現你設定的資料來源名稱,現在資料表已經在資料來源清單裡了(譯者註:點擊確定完成配置)。

(譯者註:我的例子中)現在如果我們想挑出test1列中的所有「測試值,那就需要用以下的SQL查詢:

SELECT test1 FROM [Sheet1$] WHERE test1='測試'

要注意的是工作表名後面跟了一個「$符號,這個符號是不可缺少的。為什麼?因為他的前後有方括號,因為「$是SQL語句中的保留字。

下面是範例程式:

#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 );
ResultSet rs = stmnt.executeQuery( query );
System.out.println( "查得符合'測試'的test1的記錄為:" );
while( rs.next() ) {
System.out.println( rs.getString( " test1" ) );
}
}
catch( Exception e ) {
System.err.println( e );
}
finally {
try {
stmnt.close();
c.close();
}
catch( Exception e ) {
System.err.println( e );
}
}
}

}


在此程式中,主函數main() 建立了一個資料表的連接,並取出符合條件的記錄。
(譯者註:另外,我這裡還有一段程序,是讀取所有記錄的程序,僅作參考):

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());
  }
 }
}
###

以上是如何使用Java讀取Excel文件內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除