2016-07-22 2 views
1

Ich versuche, eine CSV-Datei zu generieren, die Daten werden durch ein Komma "," und neue Zeile mit "\ n" getrennt. Die neue Zeile funktioniert, aber nicht das Komma, ich habe alle Daten in der ersten Spalte, nicht in zwei Spalten, wie ich es wünsche. HierJava create csv Datei mit Daten in Spalten nicht inline

ist der Code:

BufferedWriter writer = new BufferedWriter(new FileWriter("test.csv")); 
writer.write("Username"); 
writer.write(","); 
writer.write("Count"); 
writer.write("\n"); 
writer.write("Bob"); 
writer.write(","); 
writer.write("20"); 
writer.write("\n"); 
writer.write("Mike"); 
writer.write(","); 
writer.write("32"); 
writer.write("\n"); 
writer.close(); 

Das Ergebnis ist dieses:

Username,Count 
Bob,20 
Mike,32 

Das erwartete Ergebnis ist etwas wie das

Username | Count 
    ------ | ------ 
    Bob | 20 
    ------ | ------ 
    Mike | 32 
+1

Ich sehe dein Problem nicht. Du hast dein erwartetes Ergebnis, nicht wahr? – Jokab

+1

Es funktioniert, wenn ich ';' als Trennzeichen in einer TXT-Datei dann ändern Sie die Erweiterung, nicht mit ',' ... fragen Sie nicht, warum – AxelH

+2

Wenn Sie Ergebnis als zweite brauchen, dann müssen Sie definitiv arbeiten, um zu bekommen Dieses Design, ja das zweite ist kein ** CSV ** Dateiformat. – Imran

Antwort

1

In einem Projekt hier erstellen wir CSV mit ; Trennzeichen, um unsere Datei anstelle von , zu erstellen.

Dies ist korrekt mit Excel analysieren, ohne Änderungen in der Datei oder in Excel.

EDIT: Wie Pshemo sagte, können Sie das Trennzeichen in der ersten Zeile der Datei angeben. Wie folgt:

sep=, 
a,b 
c,d 

Dies wird in Excel (Tested) korrekt formatiert. Ich verwende diese Lösung nicht, da ich meine generierte Datei für die Archivierung und Übertragung von Daten verwende, so dass ich nicht überprüfen möchte, ob die erste Zeile Daten oder nur Eigenschaften sind. Aber das ist eine allgemeinere Lösung.

0

Wenn Sie Ihre Datei aussehen soll dies:

Username | Count 
    ------ | ------ 
    Bob | 20 
    ------ | ------ 
    Mike | 32 

dann müssen Sie Ihren Code ändern, um das zu schreiben. Aber Sie bekommen genau die erwarteten Ergebnisse

Username,Count 
Bob,20 
Mike,32 

mit CSV (Comma Separated Values), die, wie es heißt, Daten, die durch Komma getrennt ist und jede Zeile ist ein Register. Ich weiß nicht, was Sie erwartet haben, um diese Frage zu stellen.

+1

Dies löst nicht wirklich die Frage des Fragestellers. Da Sie sagen, dass seine Fragen falsch formuliert sind, eignet es sich eher als Kommentar. – Jokab

+0

Ich habe nicht genug Reputation, um einen Kommentar zu schreiben, Sie sollten es bemerken. – Julian

+0

Kaum ein Grund zum Posten als Antwort, wenn es ein Kommentar hätte sein sollen. Ich schlage vor, dass Sie sich die Beantwortungsrichtlinien http://stackoverflow.com/help/how-to-answer ansehen. – Jokab

0

Ich glaube, die Datei wird korrekt erstellt, so funktionieren CSV-Dateien. Wenn Sie sie zum Beispiel in Excel öffnen, gehen Sie zu der Kopfzeile Data, klicken Sie dann auf Text to Columns, wählen Sie als Nächstes Delimited im sich öffnenden Fenster, wählen Sie dann nach dem nächsten Komma ein Komma und drücken Sie Finish!

Verwandte Themen