質問: Java を使用して Excel ファイルを読み取ることはできますか?もしそうなら、どのようにして?
回答: はい、Microsoft Excel ファイルは Java を使用して読み取ることができます。 Microsoft は Excel 用の ODBC ドライバーを提供しているため、JDBC および Sun の JDBC-ODBC ドライバーを使用して Excel ファイルを読み取ることができます。
Book1.xls という名前の Excel ファイル (翻訳者注: 元の例をダウンロードしなかったので、独自の例を使用しました) があり、そのファイル内に Sheet1 という名前のワークシートがある場合、Microsoft の ODBC ドライバーは最初のワークシートを使用します。ワークシート内の行を列名 (翻訳者注: フィールド名) として使用し、ワークシート名をデータベース テーブル名として使用します。 JDBC 経由でワークシートにアクセスするには、新しい ODBC データ ソースも作成する必要があります。Windows 2000 システムでデータ ソースを作成するプロセスは次のとおりです。
「コントロール パネル」「管理ツール」「データ ソース」と入力します。 ODBC)、(翻訳者注: 開いた後にシステム DSN を選択してください)、[追加] をクリックし、ポップアップ ウィンドウで「Driver do Microsoft Excel(*.xls)
」を選択し、データに名前 Book1 を入力します。ソース名 (翻訳者注: データベース名と同じです) をクリックし、[ワークブックを選択し、Excel ファイルを見つけて選択します。
OK をクリックすると、設定したデータ ソース名がシステム データ ソース リストに表示されます。 、そして今度はデータテーブルです これはすでにデータソースリストにあります (翻訳者注: [OK] をクリックして構成を完了します)。
(翻訳者注: 私の例では) ここで、すべての「テスト」を選択したい場合、 test1 列に「values」を追加した場合は、次の SQL クエリを使用する必要があります:
SELECT test1 FROM [Sheet1$] WHERE test1='test'
ワークシート名に注意してください。の後ろに「$」記号が続きます。この記号は必須です。なぜですか? 前後に角括弧があるからです。「$ は 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='test'"; ResultSet rs = stmnt.executeQuery( query ); System.out.println( "「test」に一致する test1 のレコードが見つかりました:" ); while( rs.next() ) { System.out.println( rs.getString( " test1" ) ); } } catch( Exception e ) { System.err.println( e ); } finally { try { stmnt.close(); c.close(); } catch(例外 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 中国語 Web サイトの他の関連記事を参照してください。