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
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++;
}
}