Zum Inhalt springen

Fehler beim Laden einer .csv-Datei


TDM

Empfohlene Beiträge

Hallo,

ich hab hier eine Liste von Reparaturen die in einer DB liegen. Nun sollen diese, von Java, in eine csv Datei geschrieben werden. Das Problem dabei ist, dass wenn ich die Datei dann mit Excel öffne, kommt folgender Fehler:

- 1 Datensatz kann nicht gelesen werden

"Excel hat festgestellt, dass "Test.csv" SYLK-Datei ist, aber es kann die Datei nicht laden. Entweder ist die Datei fehlerhaft, oder es ist kein gültiges SYLK-Dateiformat. Klicken Sie ok, um die Datei in einem anderem Format zu öffnen"


	 /**

	 * Speichert alle Datensätze in einer externen Datei.

	 * @param FileName

	 * @param mainwindow

	 */

	public static void fileSave(String FileName, FrameHafelMain mainwindow){

		try {

			File data = new File(FileName);

			FileWriter fwriter = new FileWriter(data);

			//Überschrift

			String field = "ID" + getTrennzeichen() +

			               "Lieferant" + getTrennzeichen() + 

			               "ID.-Nr. des Herstellers" + getTrennzeichen() + 

			               "Typ" + getTrennzeichen() +

			               "Bezeichnung" + getTrennzeichen() +

			               "FaNr" + getTrennzeichen() +

			               "Eingang vom FA" + getTrennzeichen() +

			               "Beschreibung" + getTrennzeichen() +

			               "Bemerkung des Bearbeiters" + getTrennzeichen() +

			               "Kosten" + getTrennzeichen() +

			               "Signum" + getTrennzeichen() +

			               "Anmelde Datum" + getTrennzeichen() +

			               "Stoernummer" + getTrennzeichen() +

			               "Abholung" + getTrennzeichen() +

			               "Ruecksendung" + getTrennzeichen() +

			               "Ausgang an FA" + getTrennzeichen() +

			               "Lieferschein-Nr." + getTrennzeichen() +

			               "Verweildauer im RZ" + getTrennzeichen() + "\r\n";

	    	Collection colRep = HafelFactory.loadReparaturen();

	    	Iterator it = colRep.iterator();

	    	Reparatur r = null;

	    	while(it.hasNext())

	    	{

	    		r = (Reparatur) it.next();

	    		field = field + "\r\n" +

	    			    r.getKey() + getTrennzeichen() +

	    		        r.getGeraet().getFirma().getName() + getTrennzeichen() +

	    		        r.getGeraet().getSeriennummer() + getTrennzeichen() +

	    		        r.getGeraet().getTechnikart() + getTrennzeichen() +

	    		        r.getGeraet().getModell() + getTrennzeichen() +

	    		        r.getFinanzamtsNummer() + getTrennzeichen() +

	    		        r.getEingangVonAmtDatum().toString() + getTrennzeichen() +

	    		        r.getFehlerNotiz() + getTrennzeichen() +

	    		        r.getFehlerLoesung() + getTrennzeichen() +

	    		        r.getKosten().toString() + getTrennzeichen() +

	    		        r.getUser().getNachname() + getTrennzeichen() +

	    		        r.getAnmeldungBeiLieferantDatum() + getTrennzeichen() +

	    		        r.getStoerNummer() + getTrennzeichen() +

	    		        r.getAusgangAnLieferantDatum() + getTrennzeichen() +

	    		        r.getEingangVonLieferantDatum() + getTrennzeichen() +

	    		        r.getAusgangAnAmtDatum() + getTrennzeichen() +

	    		        r.getLieferscheinNummer() + getTrennzeichen() +

	    		        r.getReparaturDauer();

	    	}

	    	System.out.println(field);

	    	char[] feld = field.toCharArray();

	        if(feld.length > 0){

	           fwriter.write(feld);

	           fwriter.flush();

	           fwriter.close();

	        }	

	            mainwindow.setStatus("Datei wurde gespeichert.");

		} catch(IOException e) {

			mainwindow.setStatus("Datei konnte nicht gespeichert werden.");

			e.printStackTrace();

		}

	}

Ich hab schon gemerkt, dass es wenn ich die Überschrift mit Notepad rauslösche, der Fehler nicht mehr auftritt. Allerdings hab ich keine Idee, warum er etwas gegen die Überschrift hat :/

Link zu diesem Kommentar
Auf anderen Seiten teilen

Datei ist im Anhang (kannst probieren ob der Fehler bei dir auch kommt)

Der Inhalt:


ID;Lieferant;ID.-Nr. des Herstellers;Typ;Bezeichnung;FaNr;Eingang vom FA;Beschreibung;Bemerkung des Bearbeiters;Kosten;Signum;Anmelde Datum;Stoernummer;Abholung;Ruecksendung;Ausgang an FA;Lieferschein-Nr.;Verweildauer im RZ;


1;PCWare;202020;PC;Bluechip 550 MHZ;;Fri Mar 03 09:10:42 CET 2006;;;0.0;Mustermann;null;000000001;null;null;null;0001;0

2;PCWare;202020;PC;Bluechip 550 MHZ;;Fri Mar 03 09:10:42 CET 2006;;;0.0;fgkjh;null;000000002;null;null;null;0002;0

3;Compunet;VLU000123;Drucker;Kyocera FS 680;;Fri Mar 03 09:10:42 CET 2006;;;0.0;Mustermann;null;000000003;null;null;null;0003;0

4;PCWare;202020;PC;Bluechip 550 MHZ;;Fri Mar 03 09:10:42 CET 2006;;;0.0;fgkjh;null;000000004;null;null;null;0004;0

5;PCWare;ASX345320T2020;Monitor;ADI;;Fri Mar 03 09:10:42 CET 2006;;;0.0;Mustermann;null;000000005;null;null;null;0005;0

\r\n ist für den Zeilenumbruch (CRLF), wenn ich nur \n nehmen würde, käm da so ein Kästchen wenn ich das mit dem Notepad aufmach.

Test.csv.txt

Link zu diesem Kommentar
Auf anderen Seiten teilen


ID;Lieferant;ID.-Nr. des Herstellers;Typ;Bezeichnung;FaNr;Eingang vom FA;Beschreibung;Bemerkung des Bearbeiters;Kosten;Signum;Anmelde Datum;Stoernummer;Abholung;Ruecksendung;Ausgang an FA;Lieferschein-Nr.;Verweildauer im RZ[COLOR="Red"][B];[/B][/COLOR]

[COLOR="red"][B][CR?CRLF?][/B][/COLOR]

1;PCWare

der strichpunkt am ende der feldliste in der CSV-datei ist wohl überflüssig; ausserdem wahrscheinlich auch die leerzeile.

\r\n stimmt im übrigen schon, \n allein wird nur auf unixähnlichen systemen als zeilenumbruch verwendet.

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich vermute mal das es in der Überschrift am ersten ID liegt. Denn wenn ich das mal Test halber weg lasse bzw. durch was anderes als ID ersetzte kommt die Meldung nicht. Ich denke mal, dass das Wort ID in Excel reserviert ist und eben nicht verwendetet werden darf. Entweder nimmt du was anderes oder es ist auch möglich ID ein Hochkommas zu setzten dann geht es auch ohne Probleme.

Ach und wie Amstelchen schon richtig festgestellt hat ist das letzte Trennzeichen in der Überschrift unnötig.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...