# Export in CSV



## firestone (28. Aug 2008)

Hallo Leute

ich exportiere aus meinem Programm Daten in eine CSV Datei 
Codestücke 

```
Writer fw = null;
            File file = new File("C:\\temp\\export" + rd.nextInt() +
                    ".csv");

            try {
                fw = new FileWriter(file);
                fw.write("Nummer;Vorname/Name;Geburtsdatum;Merkmale;Kontaktdaten");
                fw.write('\n');

                for (int i = 0; i < ExportDatei.size(); i++) {

                    AusgabeSpender sp = (AusgabeSpender) ExportDatei.get(i);
                    String nummer = sp.getSpendernummer();

                    fw.write("" + nummer + ";" + sp.getNameKomplett()+";"+sp.getGeburtsdatum()+";"+sp.getMerkmale()+";"+sp.getKontaktdaten());
                    fw.write('\n');
                }

            } catch (IOException e) {
                System.err.println("Konnte Datei nicht erstellen");
            } finally {

                if (fw != null)

                    try {
                        fw.close();
                    } catch (IOException e) {
                    }
            }
```

Das Funktioniert soweit auch sehr gut . Jetzt habe ich allerdings ein Problem mit der letzten Spalte . In der letzten Spalte "Kontaktdaten" Steht die Adresse und Telefonnummer die in der Ausgabe auf der JSP auch schön formatiert wird da sie in der Liste abgespeichert ist in der Form 


Straße Hausnummer 
 Postleitzahl Ort 
 Telefonnummer

die 
 erzeugen im HTML ja einen Zeilenumbruch und sie stehen in Java so im String mit drin. 

Exportiere ich diesen String nun nach Excel schreibt er mir die 
 ´s ja aus und erzeugt keinen Zeilenumbruch. Gibt es ein Zeichen welches Excel als Zeilenumbruch erkennt welches ich dann anstatt der 
 setze ???? 


Oder habt ihr vielleicht noch andere Ideen ? 

Hoffe ich habt mein Problem verstanden 

Gruß Fireli


----------



## musiKk (28. Aug 2008)

Also ich faend Zeilenumbrueche in CSV-Dateien innerhalb der "Spalten" nicht so gut, aber du koenntest mit String.replaceAll() die 
 durch newlines ersetzen.


----------



## SlaterB (28. Aug 2008)

was nur etwas bringt, wenn der Text in Anführungszeichen eingeschlossen ist:

a;bbb;"dee
fg";ee

ich habe das mal mit dem Editor gemacht,
ein Zeilenumbruch im Editor führt zu einem Kästen in Excel,
entferne ich in Excel das Kästen, dann erscheint es im Editor

du musst also bisschen testen, ob nun \n oder \r\n besser ist


----------



## musiKk (28. Aug 2008)

Auch wenn das jetzt datenbanktechnisch gedacht ist, aber in Abhaengigkeit vom Aufwand des Umstellens waere auch noch ueber eine Normalisierung nachzudenken, sprich, die Kontaktdaten werden in weitere Spalten aufgebrochen.


----------



## firestone (28. Aug 2008)

Danke für eure Antworten ich habe die Kontaktdaten jetzt getrennt und jeweils in einzelen Spalten geschrieben


----------

