Bearbeiten Von Exceldatei mit JExcelAPI

S

Spellsleeper

Gast
Hallo mein Ziel ist das auslesen von Daten einer Html-Datei.Alles klappt soweit, allerdings möchte ich die Daten in einer Exceltabelle ausgeben lassen, dazu habe ich mir die JExcelAPI geladen. Auch dies hat gut funktioniert, nur nachdem die erste Zeile (Methode build() ) erstellt wurde schreibt er die anderen Zeilen nicht mehr(Methode write()). Der Fehler müsste in der Methode write() liegen(vermutlich habe ich die Verarbeitung der erstellten Excel-Datei falsch eingeleitet?!).Kennt sich jemand von euch mit der JExcelAPI aus, oder habe ich einen generellen,strukturellen Fehler gemacht?Danke für alle Hinweise.....

Spellsleeper:)
Java:
package steuerberater;
import java.io.*;

import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class Input {
	
	WritableWorkbook workbook;
	WritableSheet sheet;
	WritableFont arial10font;
	WritableCellFormat arial10format; 
	File f=new File("C:/Dokumente und Einstellungen/dr/Desktop/Steuerberater.txt");
	int row=1;

	public void read() {
		Steuerberater sb=new Steuerberater();
		

		try{
			File f=new File("C:/Dokumente und Einstellungen/dr/Desktop/SteuerberaterHtmlKlassen.txt");
			BufferedReader br=new BufferedReader(new FileReader(f));
			String line=br.readLine();
			build();
			while(line!=null){

				if(line.startsWith("<span class=")){
					sb=new Steuerberater();
					sb.name=line.substring(line.indexOf("\">")+2,line.indexOf("</"));
					line=br.readLine();
					line=line.replaceAll("<b>", "");
					String[] felder=line.split("<br>");
					try{
						sb.strasse=felder[2];
					}catch(IndexOutOfBoundsException ind){}
					try{
						sb.plz=felder[3].trim().substring(0, 5);
					}catch(IndexOutOfBoundsException ind){}
					try{
						sb.ort=felder[3].trim().substring(6);
					}catch(IndexOutOfBoundsException ind){}
					try{
						sb.telefon=felder[5].replace("Telefon:", "").trim();
					}catch(IndexOutOfBoundsException ind){}
					
					line=br.readLine();
				}else if(line.startsWith("</div>-->")){
					write(sb);
					line=br.readLine();
				}else{
					line=br.readLine();}
			}
			br.close();
			
		}

		catch(Exception ex){ex.printStackTrace();}	
	}
	public void build()throws IOException, RowsExceededException, WriteException{
		workbook = Workbook.createWorkbook(new File("c:/Dokumente und Einstellungen/dr/Desktop/Steuerberater.xls"));
		sheet = workbook.createSheet("Steuerberater", 0);
        arial10font = new WritableFont(WritableFont.ARIAL, 10);
        arial10format = new WritableCellFormat (arial10font);
        Label label1 = new Label(0,0, "Arial 10 point label", arial10format);
        sheet.addCell(label1);
        label1.setString("Unternehmen");
        Label label2 = new Label(1,0, "Arial 10 point label", arial10format);
        sheet.addCell(label2);
        label2.setString("Straße");
        Label label3 = new Label(2,0, "Arial 10 point label", arial10format);
        sheet.addCell(label3);
        label3.setString("PLZ");
        Label label4 = new Label(3,0, "Arial 10 point label", arial10format);
        sheet.addCell(label4);
        label4.setString("Ort");
        Label label5 = new Label(4,0, "Arial 10 point label", arial10format);
        sheet.addCell(label5);
        label5.setString("Telefon");
        workbook.write();
        workbook.close();
	}
	public void write(Steuerberater sb) throws IOException, RowsExceededException, WriteException, BiffException{
		Workbook wb=Workbook.getWorkbook(new File("c:/Dokumente und Einstellungen/dr/Desktop/Steuerberater.xls"));
		workbook=Workbook.createWorkbook(new File("c:/Dokumente und Einstellungen/dr/Desktop/Steuerberater.xls"), wb);
		Label label1 = new Label(0,row, "Arial 10 point label", arial10format);
        sheet.addCell(label1);
        label1.setString(sb.name);
        Label label2 = new Label(1,row, "Arial 10 point label", arial10format);
        sheet.addCell(label2);
        label2.setString(sb.strasse);
        Label label3 = new Label(2,row, "Arial 10 point label", arial10format);
        sheet.addCell(label3);
        label3.setString(sb.plz);
        Label label4 = new Label(3,row, "Arial 10 point label", arial10format);
        sheet.addCell(label4);
        label4.setString(sb.ort);
        Label label5 = new Label(4,row, "Arial 10 point label", arial10format);
        sheet.addCell(label5);
        label5.setString(sb.telefon);
        workbook.write();
        workbook.close();
        row++;
	}
}
 
S

SlaterB

Gast
ohne JExcel zu kennen:
wieso musst du denn bei jedem write() und bei build() die Datei komplett neu einlesen und schreiben, kannst du das Workbook nicht offen halten?

> Workbook wb=Workbook.getWorkbook(new File("c:/Dokumente und Einstellungen/dr/Desktop/Steuerberater.xls"));
> workbook=Workbook.createWorkbook(new File("c:/Dokumente und Einstellungen/dr/Desktop/Steuerberater.xls"), wb);
sieht besonders schrecklich aus, wofür brauchst du wb bei dieser Sache?
zweimal gleichzeitig auf dieselbe Datei zugreifen geht evtl. nicht und insbesondere wird auf wb nie close() aufgerufen,
damit könnte die Datei bis zum Programmende auf für nächste write()-Methoden gesperrt bleiben

wenn du überhaupt desöfteren Lesen, Schreiben und was noch immer durcheinander machen musst,
dann überlege zumindest, Kopieren anzulegen und so auf mehrere Dateien zuzugreifen,
also etwa zu Beginn von write() Steuerberater.xls mit einfachen BufferedInputStreams in temp.xls kopieren,
aus temp.xls wird dann wb gelesen, workbook bleibt bei Steuerberater.xls,
 
S

Spellsleeper

Gast
Habe jetzt 3Methoden in einer kombiniert mit je 1* workbook.write();
workbook.close();
Es funktioniert.Scheinbar schließt write() den Sheet und close() dann endgültig das Workbook.
Trotzdem danke an alle die sich Gedanken gemacht haben!;)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
J Mein Java Programm lässt sich nicht mehr bearbeiten Java Basics - Anfänger-Themen 2
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
W Array zur Laufzeit bearbeiten? Java Basics - Anfänger-Themen 31
M Arrays in Funktion Kopieren und Bearbeiten Java Basics - Anfänger-Themen 4
A Methoden Array aus verschiedenen Methoden bearbeiten bzw. öffnen Java Basics - Anfänger-Themen 18
A JButton in anderer Klasse bearbeiten. Java Basics - Anfänger-Themen 2
I Array "bearbeiten Java Basics - Anfänger-Themen 3
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
W Char Array bearbeiten Java Basics - Anfänger-Themen 6
N Klassenobjekte in einer ArrayList bearbeiten Java Basics - Anfänger-Themen 5
J Textdatei filtern und bearbeiten Java Basics - Anfänger-Themen 1
K Strings bearbeiten Java Basics - Anfänger-Themen 14
S Ordnerstrukturen durchsuchen und Files bearbeiten Java Basics - Anfänger-Themen 6
M Exception werfen und bearbeiten Java Basics - Anfänger-Themen 1
C Threads Threaded Bilder bearbeiten Java Basics - Anfänger-Themen 8
M Primefaces tabelle bearbeiten Java Basics - Anfänger-Themen 4
T Textdatei beschreiben/bearbeiten Java Basics - Anfänger-Themen 4
K CSV durchsuchen und bearbeiten Java Basics - Anfänger-Themen 1
S externe Datei erstellen, oeffnen, bearbeiten Java Basics - Anfänger-Themen 2
P Bild bearbeiten Java Basics - Anfänger-Themen 9
J Variablen Bearbeiten von Variablen aus anderen Klassen Java Basics - Anfänger-Themen 23
M Dateien erstellen/ bearbeiten/ lesen Java Basics - Anfänger-Themen 9
A JList bearbeiten Java Basics - Anfänger-Themen 2
P Per Button, Linien Hinzufügen und bearbeiten Java Basics - Anfänger-Themen 30
L Input/Output Text Dateien einlesen, bearbeiten und speichern Java Basics - Anfänger-Themen 9
Y Objekte "extern" bearbeiten Java Basics - Anfänger-Themen 3
S Von Button und Radio Button Aktion bearbeiten Java Basics - Anfänger-Themen 10
C Source File bearbeiten und neu Kompilieren Java Basics - Anfänger-Themen 5
2 Input/Output In Java Dateien öffnen/bearbeiten? Java Basics - Anfänger-Themen 9
K Umgebungsvariable Pathvariable Button "bearbeiten" nicht drückbar Java Basics - Anfänger-Themen 4
A vektor bearbeiten?? Java Basics - Anfänger-Themen 9
C Java Felder bearbeiten Hilfe Java Basics - Anfänger-Themen 4
F daten in dropbox bearbeiten Java Basics - Anfänger-Themen 23
c_sidi90 Excelfile bearbeiten ohne zu überschreiben? Java Basics - Anfänger-Themen 25
K Ausgeführte JAR bearbeiten Java Basics - Anfänger-Themen 5
F Collections Datenbankdaten in einer Map speichern, bearbeiten, sortieren und wieder in Datenbank schreiben Java Basics - Anfänger-Themen 20
StupidAttack String bearbeiten Java Basics - Anfänger-Themen 7
P mit java text-datei auslesen und weiter bearbeiten Java Basics - Anfänger-Themen 3
Z Sonderzeichen in einem String gezeichnen/bearbeiten Java Basics - Anfänger-Themen 6
D csv einlesen, bearbeiten Java Basics - Anfänger-Themen 2
P String bearbeiten Java Basics - Anfänger-Themen 2
T Ringe erzeugen und bearbeiten Java Basics - Anfänger-Themen 16
K 3 Threads bearbeiten 1 Referenz: Ich versteh's nicht... Java Basics - Anfänger-Themen 2
M Leeres String Arrayfeld bearbeiten Java Basics - Anfänger-Themen 12
S String bearbeiten Java Basics - Anfänger-Themen 4
D Datei innerhalb einer zip bearbeiten Java Basics - Anfänger-Themen 8
K Txt statt in TextArea in JTable einlesen und bearbeiten können Java Basics - Anfänger-Themen 4
K daten von jtable auslesen und in einer anderen klasse anzeigen und bearbeiten Java Basics - Anfänger-Themen 7
M HTML Datei bearbeiten Java Basics - Anfänger-Themen 14
T Plugin-Dependencies bearbeiten Java Basics - Anfänger-Themen 15
Screen Text scannen und bearbeiten ! Java Basics - Anfänger-Themen 2
R doc-Datei einlesen und bearbeiten Java Basics - Anfänger-Themen 2
D Sehr großer String lässt sich nicht bearbeiten Java Basics - Anfänger-Themen 7
-horn- CSV-file zeilenweise einlesen, was bearbeiten, nächste Zeile Java Basics - Anfänger-Themen 15
M Zahlen bearbeiten /Schneiden/hinzufügen Java Basics - Anfänger-Themen 8
G Jar mit Netbeans bearbeiten Java Basics - Anfänger-Themen 14
N xls bearbeiten und speichern Java Basics - Anfänger-Themen 2
D Worddokument automatisiert bearbeiten Java Basics - Anfänger-Themen 9
S brauche hilfe beim dateien kopieren / bearbeiten Java Basics - Anfänger-Themen 3
1 Daten einlesen und bearbeiten (mehr als 2000 Zeichen) Java Basics - Anfänger-Themen 8
C String bearbeiten Java Basics - Anfänger-Themen 7
C String aus URL lesen und bearbeiten Java Basics - Anfänger-Themen 3
W RS232: Daten empfangen,bearbeiten,ausgeben Java Basics - Anfänger-Themen 2
K Datei öffnen, lesen, bearbeiten, in neuer datei speichern Java Basics - Anfänger-Themen 12
G JFrame aus andere Klasse in GUI anzeigen und bearbeiten Java Basics - Anfänger-Themen 3
H Header von Textfile bearbeiten Java Basics - Anfänger-Themen 14
T Fenster JFrame erstellt, jetzt bearbeiten! Java Basics - Anfänger-Themen 6
N Bild bearbeiten Java Basics - Anfänger-Themen 2
D String mit replace bearbeiten Java Basics - Anfänger-Themen 2
M sting komplett bearbeiten und nicht nach zeilenumbruch ende Java Basics - Anfänger-Themen 3
B Datei zum Bearbeiten mit externem Programm öffnen Java Basics - Anfänger-Themen 43
R einzelne Zelle einer JTable bearbeiten Java Basics - Anfänger-Themen 2
T Bilder einlese und bearbeiten Java Basics - Anfänger-Themen 9
S Bearbeiten von Daten in GUI Java Basics - Anfänger-Themen 13
L Dateien im Netzwerk bearbeiten (UNC-Pfade und gemappte Laufw Java Basics - Anfänger-Themen 5
I Vector in HashMap bearbeiten Java Basics - Anfänger-Themen 5
C .tiff Dateien laden, bearbeiten(Werte einfügen),abspeichern Java Basics - Anfänger-Themen 11
C Markierten Text im JTextArea bearbeiten? Java Basics - Anfänger-Themen 2
U Benutzereingabe die Zeichen einzeln bearbeiten Java Basics - Anfänger-Themen 7
W JAR - Datei öffnen und bearbeiten ! Java Basics - Anfänger-Themen 4
N .class-Dateien bearbeiten? Java Basics - Anfänger-Themen 4
G hashtable jeden wert mit trim() bearbeiten Java Basics - Anfänger-Themen 3
G Textdateien bearbeiten Java Basics - Anfänger-Themen 22
M Eingelesenes XML-Dokument bearbeiten Java Basics - Anfänger-Themen 5
A Aus dem menü heraus andere Felder bearbeiten Java Basics - Anfänger-Themen 2
S Handy - .jar-Dateien bearbeiten? Java Basics - Anfänger-Themen 2
D Bit-Folge bearbeiten Java Basics - Anfänger-Themen 2
G Textfile bearbeiten und speichern Java Basics - Anfänger-Themen 3
F Ziffern einer eingelesenen Zahl ausgeben bzw. bearbeiten Java Basics - Anfänger-Themen 4
D exceldatei schließen mit java Java Basics - Anfänger-Themen 5
A jexcelapi fehler beim einrichten Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben