Komma geht beim Schreiben ins csv verloren.

Suppe

Mitglied
Ich will einige Daten in eine CSV schreiben. Ich erwarten double Werte zwischen 3 und 1. Erhalten tute ich das hier:

durchschnittliche Abschnitte pro Rolle


2.0

19.705.882.352.941.100

2.193.548.387.096.770

2.206.896.551.724.130

18.823.529.411.764.700

Feb.25

21.785.714.285.714.200

2.0

23.448.275.862.068.900

215.625

Als erstes habe ich gedacht es liegt nur daran, dass Eclipse die amerikanische Notation verwende(Punkte trennen ganze Zahlen von Nachkommazahlen) und Excel die Mitteleuropäische Notation. Aber dass erklärt nicht die Celle Feb.25. Der Eigentliche Wert in dieser Zelle ist 01.02.2025. Excel macht daraus dann Feb.25.


Weis jemand woran das liegt?


Mein Code:

Java:
         FileWriter ausgabe;
         try {
      
             boolean ueberschreiben= false;  // ture um die Datei zu überschreiben, false um weiter zu schreiben
      
             ausgabe =new FileWriter("c:\\working\\loesungsMethadaten.csv",!ueberschreiben);  // true wird zum weiterschreiben genutzt
              
                ausgabe.write("\n");
      
              
             ausgabe.write(gesFlaeche + " ;" + (gesVerschnitt/gesFlaeche) + ";" + auswertung.durschnittlicheAbschnitte + ";" + auswertung.druchschnittlicheBahnen + ";" + auswertung.durchschnittlicheRollenLaenge + ";" );      
              
      
      
             for(int i=0; i<auswertung.hoechsterRollenVerschnitt.length;i++)
             {
                 ausgabe.write(auswertung.hoechsterRollenVerschnitt[i] + ";");
             }
      
             for(int i=0; i<auswertung.meisteAbschnitte.length;i++)
             {
                 ausgabe.write(auswertung.meisteAbschnitte[i] + ";");
             }
      
             for(int i=0; i< auswertung.verschnittNachNWuerfen.size();i++)
             {
                 ausgabe.write(auswertung.verschnittNachNWuerfen.get(i) + ";");
             }
      
      
      
             System.out.println(gesVerschnitt);
             System.out.println("????");
      
             ausgabe.close();
         }catch (IOException e){
             System.out.println("fehler");
             System.out.println(e.getMessage());
             System.out.println(e.getStackTrace());
      
         }


Ich öffne und schieße den Writer im Zuge des Programms mehrfach. Nur falls das ein Problem ist.

gruß
Suppe
 
Zuletzt bearbeitet von einem Moderator:

javampir

Bekanntes Mitglied
hi,
was ist deine ausgabe? ist das das was du in excel siehst? mich irritieren die vielen punkte in einer zeile und dass die werte bestimmt nicht zwischen 1 und 3 sind. kannst du in excel das trennzeichen der csv angeben?
die datumskonvertierung liegt einfach mit der formatierung der einzelnen zelle zusammen.
du kannst ja die csv mal im texteditor öffnen, ob da alles stimmt.
 

Harry Kane

Top Contributor
Ich will einige Daten in eine CSV schreiben. Ich erwarten double Werte zwischen 3 und 1. Erhalten tute ich das hier:
In welchem programm erhältst du den beschriebenen Output?
a) In einem Texteditor. Dann passiert in der Tat irgendwo etwas sehr komisches
oder b) Nach öffnen der CSV Datei in Excel. Dann hat das ganze aber nix mit Java zu tun! Meiner Erfahrung nach ist Excel manchmal sehr kreativ, wenn es darum geht, eine CSV-Datei zu importieren und den Spalten Formate zuzuordnen.
 

Suppe

Mitglied
Ich habe mir jetzt die Werte nochmal in WordPad angesehen. Da sehen genau die Gleichen Werte nur dass jeweils nach der ersten Ziffer ein Punkt kommt um von den Nachkommazahlen zu trennen. Offenbar erwartet Excel, dass ganze Zahlen und Nachkommazahlen durch ein komma getrennt sind. interpretiert den Punkt als Tausenderpunkt und ignoriert ihn.

Nur in der Zeile Feb.25 passiert etwas anderes da steht in Wordpad : 2.25. Aus irgendeinem Grund hat Excel da die 01. Dazu erfunden.

Demnach ist das Problem Excel-seitig. Wahrscheinlich gibt es dann bessere Orte an denen ich fragen kann.
 

Harry Kane

Top Contributor
Ich vermute, die Excel-Importlogik sieht ungefär so aus:
Die Zahl enthält einen Dezimalpunkt, also wird erstmal versucht, sie als Datum zu interpretieren. Und bei der Zahl 2.25 ist die wahrscheinlichste Datums-Interpretation nun mal der Februar 2025.
Wenn die Zahl offensichtlich kein Datum ist, wird versucht, sie als Zahl zu interpretieren. Der Dezimalpunkt wird als Tausender-Trennzeichen interpretiert. Da dieser auf den Wert der Zahl keinen Einfluss hat, sondern es nur für den Benutzer leichter macht, die Zahl zu interpretieren, wird er zunächst mal ignoriert. Die Tatsache, dass der Dezimalpunkt eigentlich nicht als Tausender-Trennzeichen gemeint sein kann, weil er nicht oft genug vorkommt und ausserdem an der flaschen Stelle steht, wird stillschweigend ignoriere. Da der Benutzer durch den Dezimalpunkt angezeigt hat, dass er auf das Tausender-Trennzeichen Wert legt, passe ich das Zelleformat so an, dass das Tausender-Trennzeichen nach dem Import wieder angezeigt wird.
 

eldrior

Aktives Mitglied
Eine CSV Datei ist dahingehend vllt. nicht ganz so primitiv, wie sich das einige vorstellen. Excel arbeitet da nach einem Standard. Den kannst du bspw. hier lesen.
Ich würde dir empfehlen die CSV Datei mit einem bereits bestehenden Tool zu erzeugen bzw. einzulesen. Ich nutze dazu immer Apache Commons. Ist gut dokumentiert und auch nicht wirklich schwer zu nutzen.

Und nein, wenn Excel an der Stelle ein Problem hätte, hätten andere das bereits gemeldet und es wäre durch die Presse gegangen. Etwas wie CSV sollte auch MS fehlerfrei implementieren können. Wenn man aber ein Standardformat mit einem Standardprogramm öffnen möchte, die Datei aber nicht nach dem Standard erstellt, darf man sich nicht wundern, dass es nicht funktioniert ;)
 

JStein52

Top Contributor
Ich denke dass es genau so ist wie Harry Kane das beschreibt. Und das ist ja kein Fehler von Excel sondern ein ganz normales Feature. Warum sollte das durch die Presse gehen :):):) Eine CSV-Datei enthält nun mal keine Formatinformationen und dann hat Excel halt so seine Strategien was es damit veranstaltet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
S CSV einlesen und mit Komma trennen Java Basics - Anfänger-Themen 12
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
P Datentypen Kann ich bei double Komma statt Punkt eingeben? Java Basics - Anfänger-Themen 14
Lord.Djerun (Taschenrechner Netbeans) Komma nur einmal schreiben & 0 ersetzen Java Basics - Anfänger-Themen 1
U Wie bekomme ich bei der Ausgabe das erste Komma weg Java Basics - Anfänger-Themen 8
Z Double in komma und Punkt akzeptieren -> Robusteeingabe Java Basics - Anfänger-Themen 7
K Von einem Double wert nur die Zahl vor dem Komma verwenden Java Basics - Anfänger-Themen 9
Q Komma verschieben Java Basics - Anfänger-Themen 5
B Datentypen Wurzel auf n stellen nach dem Komma selber zeihen -> double zu schlecht Java Basics - Anfänger-Themen 19
R Double: auf einmal Komma statt Punkt Java Basics - Anfänger-Themen 4
L 0 nach Komma entfernen Java Basics - Anfänger-Themen 9
R ArrayList<String> Komma oder Punkt "replacen" Java Basics - Anfänger-Themen 5
N TextZeile in einzelne Strings teilen, die mit Komma getrennt sind Java Basics - Anfänger-Themen 4
7 Zahlen mit Komma ausgeben Java Basics - Anfänger-Themen 22
Beckenbauer OOP Durch Komma getrennte Einträge in einem String in ein Array oder eine Tabelle schreiben Java Basics - Anfänger-Themen 4
Z Anzahl der Stellen nach dem Komma verändern. Java Basics - Anfänger-Themen 7
K Arrays - Komma zu viel, kein Problem? Java Basics - Anfänger-Themen 3
J Nur ein Komma in JTextField zulassen... Java Basics - Anfänger-Themen 9
D Datentypen Double 2 stellen hinter dem Komma ausgeben OHNE decimalformat Java Basics - Anfänger-Themen 2
N Doulbe - 2 Stellen nach dem Komma Java Basics - Anfänger-Themen 9
G DoubleWert immer mit 2 stellen nach dem Komma? Java Basics - Anfänger-Themen 13
S Text separiert nach Komma auslesen Java Basics - Anfänger-Themen 4
D String mit 2 Stellen nach dem Komma (Dezimalzahl) Java Basics - Anfänger-Themen 9
J Zahlen nach Komma vergleichen Java Basics - Anfänger-Themen 3
B Stellen nach dem Komma Java Basics - Anfänger-Themen 2
T Wie Eingabe von Gleitkommazahl mit Komma statt Punkt Java Basics - Anfänger-Themen 4
F bei einem Float nur x Stellen nach dem Komma anzeigen ? Java Basics - Anfänger-Themen 7
MasterEvil Komma auf Numblock erzeugt nur Kästchen Java Basics - Anfänger-Themen 3
K 2 Dezimalstellen nach dem Komma erzwingen Java Basics - Anfänger-Themen 1
W Punkt statt Komma? Java Basics - Anfänger-Themen 2
D Double auf 2 stellen nach dem Komma reduzieren.. Java Basics - Anfänger-Themen 7
D MacOS: PDF erstellen geht nicht Java Basics - Anfänger-Themen 1
P Netbeans installation geht nicht Java Basics - Anfänger-Themen 26
Ostkreuz wie geht der catch? Java Basics - Anfänger-Themen 3
A Methoden Guten Tag , ich wollte so machen dass wenn meine frog an eine fly/bee geht dann an meine Tafel geht der zahl +1 hoch. Java Basics - Anfänger-Themen 2
S IntelliJ geht alle Klassen durch Java Basics - Anfänger-Themen 9
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
Say Stelle in Code herausfinden, wie geht man vor? Java Basics - Anfänger-Themen 12
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
P Installation JRE 8u321 startet, geht aber nicht weiter Java Basics - Anfänger-Themen 1
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
E Pervasive PSQL insert funktion geht nicht Java Basics - Anfänger-Themen 9
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
melisax Lower & Uppercase Beispielprogramm geht nicht Java Basics - Anfänger-Themen 3
MarcKKKK123 Wie geht das? Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
N methodenaufruf for each geht nicht Java Basics - Anfänger-Themen 2
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
W App geht live und dann? Java Basics - Anfänger-Themen 9
P Geht es vielleicht viel kürzer? Java Basics - Anfänger-Themen 7
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
B Interface List - Objekt übergeben? Einzelnes Objekt geht, aber Liste nicht? Java Basics - Anfänger-Themen 4
K Erste Schritte Programm geht aus Schleife, warum? Java Basics - Anfänger-Themen 2
S Geht das bei Java ? Java Basics - Anfänger-Themen 11
L Wie geht man bei mehreren Action Klassen vor? Java Basics - Anfänger-Themen 0
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
B OCR - Rechnungserkennung, wie geht das genau? Java Basics - Anfänger-Themen 59
CptK Klassen KeyListner geht nicht Java Basics - Anfänger-Themen 7
L Klassen Objekt aus einer Warteschlange in eine andere übergeben, geht nicht? Java Basics - Anfänger-Themen 6
K Armstrong Programm geht nur bis 1000, aber nicht weiter Java Basics - Anfänger-Themen 2
M Nim-Spiel geht in den negativen Bereich Java Basics - Anfänger-Themen 1
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
V Erste Schritte Warum geht meine continue Anweisung nicht? Java Basics - Anfänger-Themen 8
MR._FIRE_Flower String.split("(") geht nicht Java Basics - Anfänger-Themen 4
M Restbuchwert Berechnung geht nicht Java Basics - Anfänger-Themen 45
K Klassen Nachträglich ein Objekt einem anderen zuweisen, geht das? Java Basics - Anfänger-Themen 2
S int addieren geht nicht Java Basics - Anfänger-Themen 13
L system.print.out geht nicht Java Basics - Anfänger-Themen 11
M Referenz geht bei Zwischenspeichern verloren (ArrayList) Java Basics - Anfänger-Themen 4
M Arrays einspeichern geht nicht Java Basics - Anfänger-Themen 21
J BlueJ und import-Anweisungen, wie geht das? Java Basics - Anfänger-Themen 4
J Geht mit Java überhaupt was? Java Basics - Anfänger-Themen 13
J Debuggen - wie geht das? Java Basics - Anfänger-Themen 6
I erstelle Vorschaubild mit der lib PDF-Renderer und möchte danach Dateiname ändern -> geht aber nicht Java Basics - Anfänger-Themen 0
J Ausführen geht nicht Java Basics - Anfänger-Themen 19
G System.out.printf geht nicht Java Basics - Anfänger-Themen 6
E Erste Schritte [Noob] Warum geht meine For-Schleife nicht? Java Basics - Anfänger-Themen 2
I Java Code so gut es geht Kommentieren Java Basics - Anfänger-Themen 4
S Button "Berechnen" geht nicht Java Basics - Anfänger-Themen 3
B Compiler-Fehler Ein Java-Eclipse-Anfänger geht auf Reisen... Java Basics - Anfänger-Themen 10
K JUnit: Objekte von eigenen Klassen vergleichen...geht nicht Java Basics - Anfänger-Themen 5
T fianl array geht nicht... Java Basics - Anfänger-Themen 2
O if and else geht nur manchmal Java Basics - Anfänger-Themen 17
B Nichts geht mehr Java Basics - Anfänger-Themen 10
D Java geht auf windows 64 bit nicht. Java Basics - Anfänger-Themen 5
V Einfacher vergleich von Arrays geht schief Java Basics - Anfänger-Themen 2
T sample.war geht nicht... Java Basics - Anfänger-Themen 1
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
C Datentypumwandlung geht nicht Java Basics - Anfänger-Themen 5
U kompilieren geht nicht wg. Formatierung wahrscheinlich Java Basics - Anfänger-Themen 7
G While schleife mit 2 Bedingungen geht nicht! Java Basics - Anfänger-Themen 15
S Methoden Rückgabewert einer Methode als Parameter an eine andere Methode übergeben, geht das? Java Basics - Anfänger-Themen 5
L Das erste Mal GridBagLayout - wie geht das? Java Basics - Anfänger-Themen 5
O Jar Datei erstellen geht nicht. Java Basics - Anfänger-Themen 4
O (.+?) --> $1 geht nicht Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben