Hallo,
ich möchte diverse Variablenwerte in eine xls-Datei schreiben. Wenn die Datei im Verzeichnis noch nicht existiert, dann wird sie angelegt, eine Spaltenbeschriftung erstmal eingefügt und dann die Werte.
Wenn sie bereits existiert, werden einfach nur die Variablenwerte eingetragen.
Das Eintragen ansich funktioniert, aber 2 Probleme habe ich.
1. Es kommt immer die Meldung "java.io.IOException: Stream closed"!!! Irgendwas haut da noch nicht mit meinem fw.close() hin?!
2. Irgendwie scheint mein Code immer nur den else-Zweig abzuarbeiten, da jeder neue Eintrag in die Datei auch gleichzeitig nochmal die Spaltenüberschriften mit reinschreibt, statt nur die Werte einzutragen - obwohl die Datei dann bereits im Verzeichnis existiert. Ist da was an meine Abfrage falsch?
Die Werte ansich, die eingefügt werden, sind aber erstmal korrekt... bis eben auf die dauernd nochmals mit eingefügte Spaltenüberschrift-Zeile.
Meine Ausgabe sieht also schematisch immer so aus:
Sollte aber eigentlich so aussehen:
Danke und Gruß.
ich möchte diverse Variablenwerte in eine xls-Datei schreiben. Wenn die Datei im Verzeichnis noch nicht existiert, dann wird sie angelegt, eine Spaltenbeschriftung erstmal eingefügt und dann die Werte.
Wenn sie bereits existiert, werden einfach nur die Variablenwerte eingetragen.
Das Eintragen ansich funktioniert, aber 2 Probleme habe ich.
1. Es kommt immer die Meldung "java.io.IOException: Stream closed"!!! Irgendwas haut da noch nicht mit meinem fw.close() hin?!
2. Irgendwie scheint mein Code immer nur den else-Zweig abzuarbeiten, da jeder neue Eintrag in die Datei auch gleichzeitig nochmal die Spaltenüberschriften mit reinschreibt, statt nur die Werte einzutragen - obwohl die Datei dann bereits im Verzeichnis existiert. Ist da was an meine Abfrage falsch?
Code:
path = curSession.GetCurrentDirectory();
find = "dxf_filenames.xls";
FileWriter fw = new FileWriter(path + "dxf_filenames.xls", true);
File f = new File(path);
File[] fileArray = f.listFiles();
if(fileArray != null){
for(int i=0;i<fileArray.length;i++){
if(fileArray[i].getName().indexOf(find) != -1){
//Variablenwerte einfügen
fw.write(filename_cut+ "\t" +filename+"\t"+sachnr+ "\t"+menge+ "\t" +blechd+ "\t"+werkst +"\t"+new DecimalFormat("0.00").format(masse)+"\t"+new DecimalFormat("0.00").format(masse_rohling)+"\t"+new DecimalFormat("0.00").format(konturlaenge)+ "\n");
fw.close();
}else{
//Spaltenüberschrift einfügen
fw.write("evtl. gekürzter Dateiname"+ "\t" +"Dateiname"+"\t"+"Sachnummer"+ "\t"+"Menge [Stk]"+ "\t" +"Blechdicke [mm]"+ "\t"+"Werkstoff" +"\t"+"Masse Brennteil [kg]"+"\t"+"Masse Brennteilrohling [kg]"+"\t"+"Brennkonturlänge [mm]"+ "\n");
//Variablenwerte einfügen
fw.write(filename_cut+ "\t" +filename+"\t"+sachnr+ "\t"+menge+ "\t" +blechd+ "\t"+werkst +"\t"+new DecimalFormat("0.00").format(masse)+"\t"+new DecimalFormat("0.00").format(masse_rohling)+"\t"+new DecimalFormat("0.00").format(konturlaenge)+ "\n");
fw.close();
}
}
}
Meine Ausgabe sieht also schematisch immer so aus:
Code:
Spaltenüberschrift
Werte
Spaltenüberschrift
Werte
usw.
Code:
Spaltenüberschrift
Werte
Werte
Werte
usw.
Danke und Gruß.