XLS Datei aus Datenbank erstellen

Chriss_07

Aktives Mitglied
Ich habe ein Beispiel für einen Datenexport ins Excelformat bei RoseIndia gefunden und das auf meine Datenbank übertragen. Aber mehr als den SQL Query bekomme ich nicht ausgegeben. Obwohl die Instanz
Code:
new Workbook()
existiert, wird sie aber nicht erstellt.
Java:
import java.io.*;
import java.sql.*;

import javax.swing.JOptionPane;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;

public class ExcelFile {
	
	public static Connection con;
	
	
    public static void openUserConnection() throws Exception {
    	
    	
    	try {
    		Class.forName("org.sqlite.JDBC");
    		DriverManager.registerDriver(new org.sqlite.JDBC());
	    	con = DriverManager.getConnection ("jdbc:sqlite:Dberfassendb.db");
	        int level = Connection.TRANSACTION_SERIALIZABLE;
	        con.setTransactionIsolation(level);
	        System.out.println("2. geschafft");
    	}catch (SQLException e) {
			String msg = "Es konnte keine Verbindung zur Datenbank hergestellt werden.\n"
				   + "Die Applikation wird nun geschlossen.";
			JOptionPane.showMessageDialog(null, msg, "Datenbank nicht gefunden!", JOptionPane.WARNING_MESSAGE);
			System.exit(0);
    	}
    }
    
	private static void disconnet() {
		if(con!=null);
		
	}

		public static void main(String[] args) {
        	   String sql;
        		ResultSet rs;
        		Statement stmnt;
        		System.out.println("1. geschafft");
                try {
                	openUserConnection();
        			stmnt = con.createStatement();
                sql = "Select zeit, ort, strasse, info  from tour ";
                System.out.println(sql);
                rs = stmnt.executeQuery(sql);
                        HSSFWorkbook wb = new HSSFWorkbook();
                        HSSFSheet sheet = wb.createSheet("Excel Sheet");
                        HSSFRow rowhead = sheet.createRow((short) 0);
                        rowhead.createCell((short) 0).setCellValue("Zeit");
                        rowhead.createCell((short) 1).setCellValue("Ort");
                        rowhead.createCell((short) 2).setCellValue("Strasse");
                        rowhead.createCell((short) 8).setCellValue("Info");

                        int index = 1;
                        while (rs.next()) {
                        	System.out.println("3. geschafft");
                                HSSFRow row = sheet.createRow((short) index);
                                row.createCell((short) 0).setCellValue(rs.getInt(1));
                                row.createCell((short) 1).setCellValue(rs.getString(2));
                                row.createCell((short) 2).setCellValue(rs.getString(3));
                                row.createCell((short) 3).setCellValue(rs.getInt(4));
                                index++;
                        }
                        FileOutputStream fileOut = new FileOutputStream("c:\\excelFile.xls");
                        wb.write(fileOut);
                        fileOut.close();
                        System.out.println("Data is saved in excel file.");
                        rs.close();
                		stmnt.close();
                		disconnet();
                } catch (Exception e) {
                }
        }
}

Habt ihr einen Rat?
 

Geeeee

Bekanntes Mitglied
Evtl. bist du etwas vertieft in den Code, aber was passiert denn nach der Ausgabe des Querys?
Hab mir den Code nun noch nicht angeschaut, weil ich ja nicht weiß, was der Fehler ist. Es muss ja irgendeine Exception kommen oder so.
 

Chriss_07

Aktives Mitglied
Ja hi,
ich bekomme keine Exception. Die System.out werden mir bis zum SQL ausgegeben und das war es dann.
SQL:
1. geschafft
2. geschafft.
Select zeit, ort, strasse, info  from tour
Keine Exceptions und kein generierte XLS File
 

Geeeee

Bekanntes Mitglied
Argh..natürlich bekommst du keine, weil du die Exception wegfängst.
Schreib mal mind. e.printStackTrace() in deine Catch-Klausel. (Wäre auch gut, wenn du die unterschiedlichen Exception fängst und nicht global mit dem Typ Exception weggreifst, aber das ist erstmal egal)
 

Chriss_07

Aktives Mitglied
Ähhh, ja.
Das hat mir schon mal meinen Fehler gezeigt. ICh habe eine Column aufgerufen, die gar nicht existiert.
Sorry, bin doch echt ne Schnarchnase.
Aber wieder was gelernt - Fehlermeldungen nicht wegfangen.
Nun wird die XLS erstellt, allerdings sind dazu zwei Formatierungsfragen meinerseits.
1. Die Zeit wird nur die Stunden übernommen z.B.: ( 11 - statt 11:44)
2. Zielort ist jeweils ein Ort hinterlegt, der als 0 übergeben wird z.B. ( DB: Müchen - XLS: 0)
 

Chriss_07

Aktives Mitglied
Aufbau ist eine ID (PK) , die anderen Columns haben TXT als Datentyp.
Führe ich das Statement direkt auf der DB aus, ist die Ausgabe gleich dem Datenbankinhalten.
Zum styling der Zellen habe ich auch schon was gefunden aber die Implementierung stimmt noch nicht
Java:
                        HSSFWorkbook wb = new HSSFWorkbook();
                        HSSFSheet sheet = wb.createSheet("Excel Sheet");
                        CellStyle style;
                        DataFormat format = wb.createDataFormat();
                        
                        HSSFRow rowhead = sheet.createRow((short) 0);
                        rowhead.createCell((short) 0).setCellValue("Zeit");

while (rs.next()) {
                        HSSFRow row = sheet.createRow((short) index);
                        row.createCell((short) 0).setCellValue(rs.getInt(1));
                        style = wb.createCellStyle();
                        style.setDataFormat(format.getFormat("00:00"));;

EDIT:\\
Wenn ich es schon als
Code:
String sql;
deklariere, sollte ich denn auch als
Java:
row.createCell(0).setCellValue(rs.getString(1));
aufrufen und nicht als Integer.
Hat sich also erledigt
 
Zuletzt bearbeitet:

henpara

Bekanntes Mitglied
richtig, hab mir eben die "binary" files von der apache seite runtergeladen, also das file mit dem namen:
poi-bin-3.7-20101029.tar.gz. Scheint mir ne ganz normales archiv zu sein, drinnen sind dann ein paar .jar files, aber keines, das wie in diesem thread genannt wird.

Daher bekomme ich in Eclipse dementsprechend nicht die richtigen klassen eingebunden (wie auch,wenn nur jars gegeben sind).

Ich hab mich bisher noch nicht mit dem Einbinden von Externen Libraries beschäftigt und stehe gerade n bischen auf dem Schlauch, was genau ich runterladen muss, wo ich es hinkopieren muss, und was ich dann im Classpath ändern muss (oder in Eclipse nur "externe library einbinden"?!)

lg
 
S

SlaterB

Gast
welcher Name wird denn in diesem Thread genannt?
das wesentliche Jar ist offensichtlich
poi-3.7-20101029.jar
der Rest wird halt noch dazu benötigt, teilweise nur bei bestimmten Aufgaben,

in Eclipse externe Libraries einbinden, richtig, mindestens dieses jar + alles was im lib-Ordner liegt,
dürfte für einfache Beispiele reichen, ansonsten noch alle anderen jars die du im Zip finden kannst, wobei
poi-examples-3.7-20101029.jar
wahrscheinlich nicht nötig sein dürfte
 

henpara

Bekanntes Mitglied
Ok, dann versuche ich mich nochmal etwas präziser auszudrücken:

im ersten Post greift der TE folgendermaßen auf die Klassen zu:
Java:
import apache.poi.hssf.usermodel.HSSFSheet;
import apache.poi.hssf.usermodel.HSSFWorkbook;
import apache.poi.hssf.usermodel.HSSFRow;
import apache.poi.hssf.usermodel.HSSFCell;

Ich habe jetzt die runtergeladene Datei umbenannt in "poi.tar.gz" und zu meinen Sourcen kopiert.
Dann in Eclipse Add external Jar die Datei angegeben.
Soweit so gut, keine Fehlermeldungen etzpp.

Wenn ich jetzt aber auf die Klassen zugreifen will, muss ich sie ja auch importieren in meiner Klasse.
Offensichtlich funktioniert der Import wie oben bei mir nicht.
Allerdings wenn ich in die Jar reinschaue hat er zB den Ordner poi3.7, welcher ja als Import Befehl unzullässig ist wegen dem Punkt.

Verstehst du nun wo mein Problem liegt?
Ich weiß prinzipiell, wie ich externe Jars einbinde, aber nicht
1. wie ich die genauen import-pfade herausbekomme (ich dachte immer, das wäre einfach nur die Ordnerabfolge mit . also quasi als Baum)
2. Ob die externen jars eine bestimmte File-Endung haben müssen, um als solche erkannt zu werden, oder ob die Endung .taz oder .gz willkürlich und egal sind.

Ich habe bei einem anderen Projekt zB den DB2- Java-Treiber als externe Klasse in folgendem File:
db2java.zip
wenn ich die öffne gibts mir den genauen Pfad an und alles ist gut, also zB für den Treiber:
COM.ibm.db2.jdbc.app.DB2Driver, und die .class Datei ist auch genau in diesem Unterordner.
 
S

SlaterB

Gast
> Verstehst du nun wo mein Problem liegt?

klar doch, das Wort 'nun' impliziert vorher nicht, was aber auch schwer war mangels Beschreibung ;)
bzw. ich verstehe dass du ein Problem hast, aber noch nicht unbedingt genau welches oder wie es dazu kommt,

> Allerdings wenn ich in die Jar reinschaue hat er zB den Ordner poi3.7
das gilt für das Gesamt-Zip/sonstige Downloaddatei poi-bin-3.7-20101029.tar.gz oder ähnlich,
dass dieses erst entpackt werden muss und du dann diverse Jars und anderes erhälst sollte eigentlich klar sein?
du sprichst ja auch selber davon ("drinnen sind dann ein paar .jar files"), die paar jar-Files, das sind erst die interessanten jars,
wie ich doch schon genauestens gesagt habe vor allem poi-3.7-20101029.jar sowie die im lib-Unterzeichnis,
die muss du alle adden, nicht die eine Gesamtdatei

in poi-3.7-20101029.jar kann man auch reinschauen, z.B. per Zip-Programm, dort findet man dann ein Verzeichnis org,
darunter apache/poi usw., von org abgesehen exakt wie die package-Struktur der benötigten Klassen lautet,
apache/poi/hssf/usermodel mit allen benötigten Klassen und noch viel mehr ist alles da
 

henpara

Bekanntes Mitglied
in poi-3.7-20101029.jar kann man auch reinschauen, z.B. per Zip-Programm, dort findet man dann ein Verzeichnis org,
darunter apache/poi usw., von org abgesehen exakt wie die package-Struktur der benötigten Klassen lautet,
apache/poi/hssf/usermodel mit allen benötigten Klassen und noch viel mehr ist alles da

genau das hat mir gefehlt. Hab nicht dran gedacht, daß man die Jar Datei öffnen kann, bzw. daß da nochmal alles drin ist. Jetzt ist mir das ganze wieder klar.

Vielen Dank!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Zugriff auf Datenbank nach Erstellen einer Executable Jar Datei verweigert Datenbankprogrammierung 10
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
J JAR-Datei und Datenbank Datenbankprogrammierung 8
M MySQL JSON-Datei auf Datenbank anwenden Datenbankprogrammierung 17
M Verbindung von Java Programm zur Acccess Datenbank (mdb-Datei) Datenbankprogrammierung 0
C VDF Datei als Datenbank genutzt!!! Datenbankprogrammierung 5
D Datenbank oder XML Datei Datenbankprogrammierung 3
D Derby Datenbank bei Export zu JAR-Datei nicht möglich Datenbankprogrammierung 8
K SQLite CSV-Datei einlesen in eine Datenbank Datenbankprogrammierung 7
M Datenbank-Datei Datenbankprogrammierung 10
achillesat ausgelesene Datei in Datenbank schreiben Datenbankprogrammierung 9
S Schnellste Methode Datei aus Datenbank herstellen Datenbankprogrammierung 7
H Datenbank in Datei speichern / laden Datenbankprogrammierung 8
Dragonfire Daten aus jsp Datei in datenbank speichern Datenbankprogrammierung 15
D Access Datenbank in .jar-Datei Datenbankprogrammierung 51
H Wie kann ich eine Datenbank Connection aus XML-Datei lesen! Datenbankprogrammierung 2
M H2 DAtenbank in .sql datei schreiben/abfragen ? Datenbankprogrammierung 3
A Einlesen einer csv-Datei in eine H2-Datenbank Datenbankprogrammierung 3
N csv datei in PostgreSQL datenbank einlesen Datenbankprogrammierung 1
M Mit Java .txt-Datei in eine Datenbank einlesen lassen Datenbankprogrammierung 33
ARadauer datenbank in datei sichern Datenbankprogrammierung 4
Y Problem mit Ablage einer Datei in einer Datenbank als BLOB Datenbankprogrammierung 6
D H2 schema-Datei ausführen Datenbankprogrammierung 22
L Oracle SQL Inserts via Client vs SQL Datei via ScriptRunner Datenbankprogrammierung 6
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
J Jar-Datei stellt keine Datenbankverbindung her Datenbankprogrammierung 3
L CSV Datei mit DB Inhalt vergleichen Datenbankprogrammierung 20
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
T Datei auf Desktop ausgeben Datenbankprogrammierung 22
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
M HSQLDB .Script-Datei entfernen oder sperren Datenbankprogrammierung 18
V SQLite Performance: 1 Datei mit einzelnen Einträgen gegenüber SQLite Datenbankprogrammierung 7
J SQL Datei einlesen/beschreiben Datenbankprogrammierung 0
F JPA persistence.xml mit EXTERNER Config Datei Datenbankprogrammierung 0
L SQL2SMO JAR-Datei zum Laufen bringen Datenbankprogrammierung 0
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
P Derby/JavaDB Csv Datei für dieses Musterprogramm Datenbankprogrammierung 12
D [xBaseJ] Datei kann nicht geöffnet werden Datenbankprogrammierung 2
L Werte in Datei speichern Datenbankprogrammierung 16
M HSQLDB oder DERBY - warum SCRIPT Datei? Datenbankprogrammierung 0
S SQL-Abfrage, Filewriter .txt Datei Datenbankprogrammierung 2
T 3 GB Große CSV Datei einlesen und in SQL-DB schreiben Datenbankprogrammierung 12
T Datei import und Datumsformat Datenbankprogrammierung 4
E csv datei in JTable einlesen Datenbankprogrammierung 3
E Datei Zippen und an DB schicken Datenbankprogrammierung 7
N Oracle txt. Datei auslesen-> verändern-> einlesen Datenbankprogrammierung 7
D MySQl Treiber in .jar Datei einbinden, Bukkit Datenbankprogrammierung 2
bluerob MimeMessage .getFrom()[0]; liest eml-Datei nicht Datenbankprogrammierung 7
O MySQL sql Datei einzelner Tabellen erzeugen (über Java Programm) Datenbankprogrammierung 6
F Große Datei in MySQL importieren Datenbankprogrammierung 10
H Derby SQL-Abfragen in Datei abspeichern Datenbankprogrammierung 2
S passwortgeschützte Excel-Datei einlesen Datenbankprogrammierung 3
M FindBugs und PreparedStatement aus einer Datei lesen Datenbankprogrammierung 11
H CSV Datei in MSSQL DB oder doch SQL Script Datenbankprogrammierung 11
N Problem mit dem Importieren der csv- u. txt-Datei Datenbankprogrammierung 3
M Tabelle in Access Datei mit JDBC generieren Datenbankprogrammierung 3
N csv datei erstellen Datenbankprogrammierung 2
S BLOB in Datei speichern Datenbankprogrammierung 8
S projektplanung mit csv datei Datenbankprogrammierung 2
M Gelöst: JavaDB - Derby Inhalt in Jar Datei speichern Datenbankprogrammierung 5
K jar Datei startet nicht aufgrund Firebird(?) Datenbankprogrammierung 3
A Auslesen von Werten aus der DB in eine csv-Datei Datenbankprogrammierung 4
T Wie kann ich Blobs (Bilder) in einer Datei speichern? Datenbankprogrammierung 2
A Auslesen aus einer csv-Datei Datenbankprogrammierung 2
A Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB Datenbankprogrammierung 2
G Import einer csv-Datei in eine H2-Database Datenbankprogrammierung 12
B HSQLDB und die log-Datei Datenbankprogrammierung 10
S [Hibernate] Map in Map - Wie sieht Mapping Datei aus? Datenbankprogrammierung 10
F Probleme mit Jar Datei Datenbankprogrammierung 3
T Datei (Blob) mit verknüpfter Software öffnen? Datenbankprogrammierung 4
M Problem: Große Datei in MySQL DB importieren. Datenbankprogrammierung 12
P ODBC verbindung Java soll auf access mdb datei zugreifen Datenbankprogrammierung 2
S SQLite oder RDBMS als Datei(nicht Client/Server) Datenbankprogrammierung 5
G .jar - Datei erzeugen (Was beachten?) Datenbankprogrammierung 2
R Mit JAR-Datei ist MySQL-Treiber nicht auffindbar Datenbankprogrammierung 10
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
L SQL Datenbank Datenbankprogrammierung 7
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7

Ähnliche Java Themen

Neue Themen


Oben