Heim > Java > javaLernprogramm > Hauptteil

So lesen Sie den Inhalt einer Excel-Datei mit Java

WBOY
Freigeben: 2023-05-02 10:31:17
nach vorne
2370 Leute haben es durchsucht

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());
  }
 }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage