Da ein Beispiel mehr sagt als lange Erklärungen:
Hier gibts die Excel-Datei test.xls und hier das zugehörige Java-File Excelbeispiel.java.
Wichtig ist noch, dass man in der Excel-Datei alle Zellen, die man später haben möchte
markiert und benennt. Unter open-office-calc geht das mittels Einfügen->Namen->Festlegen.
Die Excel-Datei direkt auf d:\ legen.
import java.sql.*;
public class ExcelBeispiel {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbpath = "d:/test.xls";
Connection con = DriverManager
.getConnection("jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls)};DBQ="
+ dbpath);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM testbereich");
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= clmCnt; i++) {
System.out.print(rs.getString(i));
System.out.print(" ");
}
System.out.println();
}
con.close();
}
}
viaThomas Darimont
6 Kommentare:
Hat bei mir nicht funktioniert... bekomme immer diese Fehlermeldung
Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at ExcelBeispiel.main(ExcelBeispiel.java:13)
Liegt die Exceldatei auf
D:\ ?
sonst im Quellcode den Pfad
ändern?
String dbpath = "d:/test.xls";
Ich würde gerne einen String einlesen (Artikelnummer, die aus Zahlen und Buchstaben besteht). Das Programm gibt an der stelle aber nur "Null" aus anstatt des Strings. Muss ich dafür noch etwas ändern?
Gruß
Lars
Bei mir kommt es auch zur oben genannten Fehlermeldgung:
Exception in thread "main" java.sql.SQLException: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLDriverConnect(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcConnection.initialize(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at ExcelBeispiel.main(ExcelBeispiel.java:20)
Der Pfad im Quellcode ist bei mir korrekt. Muss ich jetzt noch einen Treiber installieren?
bei mir hat eclipse noch ein paar packages automatisch funktioniert:
vorsicht pfad der datei ist jetzt h:\
import java.beans.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
public class ExcelBeispiel {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String dbpath = "h:/test.xls";
Connection con = DriverManager
.getConnection("jdbc:odbc:DRIVER={Microsoft Excel Driver (*.xls)};DBQ="
+ dbpath);
java.sql.Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM testbereich");
ResultSetMetaData rsmd = rs.getMetaData();
int clmCnt = rsmd.getColumnCount();
while (rs.next()) {
for (int i = 1; i <= clmCnt; i++) {
System.out.print(rs.getString(i));
System.out.print(" ");
}
System.out.println();
}
con.close();
}
}
---------------------
Ende code
Ausgabe auf der konsole:
1.0 34.0 3.0
2.0 34.0 123.0
3.0 123.0 21.0
4.0 14.0 123.0
5.0 324.0 3.0
6.0 23.0 2.0
7.0 423.0 32.0
8.0 4.0 3.0
9.0 4.0 23.0
10.0 434.0 2.0
11.0 34.0 14.0
Ein paar Kommentare im Quellcode wäre praktisch ;)
Kommentar veröffentlichen