Heim  >  Artikel  >  Java  >  So lesen Sie den Inhalt einer Excel-Datei mit Java

So lesen Sie den Inhalt einer Excel-Datei mit Java

WBOY
WBOYnach vorne
2023-05-02 10:31:172313Durchsuche

Frage: Kann ich eine Excel-Datei mit Java lesen? Wenn ja, wie?
Antwort: Ja, Microsoft Excel-Dateien können mit Java gelesen werden. Microsoft stellt einen ODBC-Treiber für Excel bereit, sodass wir JDBC und den JDBC-ODBC-Treiber von Sun zum Lesen von Excel-Dateien verwenden können.
Wenn Sie eine Excel-Datei mit dem Namen „Book1“ haben, verwendet der ODBC-Treiber von Microsoft die erste Zeile im Arbeitsblatt als Spaltennamen (Anmerkung des Übersetzers: Feldname) und den Namen des Arbeitsblatts als Namen der Datenbanktabelle. Um über JDBC auf das Arbeitsblatt zuzugreifen, müssen wir auch eine neue ODBC-Datenquelle erstellen. Der Prozess zum Erstellen einer Datenquelle auf einem Windows 2000-System ist wie folgt:

Geben Sie „Systemsteuerung“ in die Verwaltungstools „Datenquelle (ODBC)“ ein. (Anmerkung des Übersetzers: Wählen Sie nach dem Öffnen den System-DSN aus), klicken Sie auf „Hinzufügen“ und wählen Sie „Treiber für Microsoft Excel (*). wird in der Datenquellenliste des Systems angezeigt, und jetzt befindet sich die Datentabelle bereits in der Datenquellenliste (Anmerkung des Übersetzers: Klicken Sie auf OK, um die Konfiguration abzuschließen

(Anmerkung des Übersetzers: In meinem Beispiel) Nun, wenn wir alle auswählen möchten Für die „Testwerte“ in der Spalte „test1“ müssen wir die folgende SQL-Abfrage verwenden:

SELECT test1 FROM [Sheet1$ ] WHERE test1='Test'

Es ist zu beachten, dass auf den Arbeitsblattnamen ein „$“ folgt Symbol, das unverzichtbar ist. Weil davor und danach eckige Klammern stehen, weil „$“ in SQL-Anweisungen reserviert ist.

Das Folgende ist ein Beispielprogramm:


import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;In diesem Programm stellt die Hauptfunktion main() eine Verbindung zur Datentabelle her und Entfernen Sie Datensätze, die die Kriterien erfüllen. (Anmerkung des Übersetzers: Außerdem habe ich hier auch ein Programm, das alle Datensätze liest, nur als Referenz):
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( "Der Datensatz von test1, der mit 'test' übereinstimmt, ist:" );
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 );
}
}
}
}





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

Das obige ist der detaillierte Inhalt vonSo lesen Sie den Inhalt einer Excel-Datei mit Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen