![]() |
CSV Datei erstellen
Hallo erstmal,
bin neu hier im Forum und hab gleich mal eine Frage. Ich möchte einen String in eine CSV Datei exportieren. Hier mal kurz mein Quellcode.
Delphi-Quellcode:
Das Problem ist nun, dass die Datei erstellt wird aber nicht korrekt dargestellt wird. Wenn ich die CSV Datei mit dem Editor öffne, werden die Datenfelder und die Werte korrekt dargestellt. Öffne ich die CSV Datei aber mit Excel, stimmen die Feldern und Werte nicht mehr überein.//GCSV wurde vorher als TStrings deklariert GCSV.Text := 'Fahrzeugart;Interner Name;Angebotsart;Kategorie;Marke;Modell;Leistung;' + 'Hubraum;EZ;TUV;AU;Kmstand;Preis;Haendlerpreis;VHB;Sofortkaufpreis;Startpreis;' + 'Wiederbeschaffungswert;Mwst. ausweisbar;Mwstsatz;Arbeitskosten;Lackkosten;' + 'Ersatzteilkosten;Reparaturkosten;Anzeigedauer;Angebotsende/Enduhrzeit;' + 'Waehrung;Land;PLZ;Kraftstoff;Automatikgetriebe;Tueren;Farbe;Metallic;' + 'Unfallfahrzeug;Schadenbeschreibung;Vorschaden/Altschaden;Neufahrzeug;' + 'Jahresfahrzeug;Oldtimer;Taxi/Mietfahrzeug;Garantie;Info/Ausstattung;' + 'ABS;ESP;Allradantrieb;Anhaengerkuplung;Klimaanlage;Alufelgen;Lederausstattung;' + 'Sitzheizung;Wegfahrsperre;Navigationsystem;Zentralverriegelung;Tempomat;' + 'Serviceheft;Elektrostarter;Katalysator;Halbverkleidung;Vollverkleidung;' + 'Windschild;Topcase;EBS;Hydraulik;Intarder;Ladebordwand;Retarder;Schiebetuer;' + 'Trennwand;Vorfuehrfahrzeug;Kran;Tragkraft;Nutzlast;Gesamtgewicht;Hubhoehe;' + 'Bauhoehe;Betriebsstunden;Sitze;Schadstoff;Kabinenart;Achsen;Schlafplatz;TV;WC;' + 'Kompressor;Fronthydraulik;Frontheber;Kuehlanlage;Lueftfederung;Zentralschmierung;' + 'Standheizung;Kueche;Kraftstoffverbr.innerorts;Kraftstoffverbr.ausserorts;' + 'Kraftstoffverbr.ca. (im Durchschnitt);CO2-Emissionen kombiniert;' + 'Fahrzeughalter/Ansprechpartner Name;Fahrzeughalter/Ansprechpartner Vorname;' + 'Fahrzeughalter/Ansprechpartner Telefon;Fahrzeughalter/Ansprechpartner Mobil;' + 'Fahrzeughalter/Ansprechpartner E-Mail;Fahrzeughalter/Ansprechpartner Strasse Haus- Nr;' + 'Fahrzeughalter/Ansprechpartner Ort;Fahrzeughalter/Ansprechpartner PLZ;' + 'Fahrzeughalter/Ansprechpartner Land'; if CBMwSt.Text = 'n.ausweisbar' then begin hMwSTAus := '0'; end else begin hMwSTAus := '1'; end; if CBMwSt.Text = 'Deutschland' then begin hLand := 'D'; end; if BesAutomatik.Checked then begin hAutoMa := '1'; end else begin hAutoMa := '0'; end; if CBMetallic.Checked then begin hMetallic := '1'; end else begin hMetallic := '0'; end; GCSV.Text := GCSV.Text + CBFzgArt.Text + ';' + EditGaNr.Text + ';' + 'restwert' + ';' + CBKateg.Text + ';' + CBMarke.Text + ';' + EditModell.Text + ';' + EditLeist.Text + ';' + EditHubraum.Text + ';' + '00/' + EditEZ.Text + ';' + '00/' + EditTUEV.Text + ';' + '00/' + EditTUEV.Text + ';' + EditKM.Text + ';' + '0' + ';' + ';' + '0' + ';' + '0' + ';' + '0' + ';' + '0' + ';' + EditWieder.Text + ';' + hMwSTAus + ';' + CBMwStSatz.Text + ';' + EditLohn.Text + ';' + EditLack.Text + ';' + EditErsatz.Text + ';' + EditGesamt.Text + ';' + CBAnzDauer.Text + ';' + CBAnzEnde.Text + ';' + CBWaehr.Text + ';' + CBOrtPlz.Text + ';' + hLand + ';' + EditPlz.Text + ';' + CBKraftStoff.Text + ';' + hAutoMa + ';' + EditTueren.Text + ';' + CBFarbe.Text + ';' + hMetallic + ';' + '' + ';' + MemoUnfall.Text + ';' + MemoVorSchaden.Text + ';'; //SDCSV SaveDialog with SDCSV do begin Filter := 'CSV Dateien (*.csv)|*.csv'; FileName := EditGaNr.Text; DefaultExt := 'csv'; Options := [ofOverwritePrompt]; if Execute then GCSV.SaveToFile(FileName); Gruß Andreas |
Re: CSV Datei erstellen
Was gibst du denn bei Excel als Trennzeichen an bzw. was ist voreinegstellt? Und was heißt "stimmen die Feldern und Werte nicht mehr überein"?
|
Re: CSV Datei erstellen
inwiefern stimmen die daten nicht mit den feldern überein?
wenn die CSV im editor richtig angezeigt wird, dann hat wohl dien excel ein problem oder so ;) aenogym |
Re: CSV Datei erstellen
Das weiss ich eben nicht ob das Problem bei Excel liegt oder bei mir. Ich habe eine CSV Datei als Vorlage. Dort wird in A1 die Datenfelder angegeben und in A2 die Werte zu den Feldern. Trennzeichen ist Semikolon.
Bei meiner Datei werden in A1 die Datenfelder angegeben und in A2, B2, C2 usw. Wenn ich die erstellte CSV Datei im Editor öffne passt alles. Deshalb bin ich ein bischen verwirrt. |
Re: CSV Datei erstellen
also hast möchtest du eine vertikale tabelle, dein delphiprogramm macht aber eine horizontale tabelle.
deine CSV-Datei sieht jetzt quasi so aus:
Code:
damit du in excel aber das gewünschte aussehen bekommst, muss deine CSV-datei folgendermaßen aussehen:
Feld1;Feld2;Feld3
Wert11;Wert12;Wert13 Wert21;Wert22;Wert23
Code:
aenogym
Feld1;Wert11;Wert21
Feld2;Wert12;Wert22 Feld3;Wert13;Wert23 |
Re: CSV Datei erstellen
so sollte es sein(laut Vorlage!)
Delphi-Quellcode:
und so ist es
A1 = Fahrzeug; Kilometerstand; Farbe; Nummer; Kennzeichen;
A2 = Opel; 155555; Gelb; 12345; S-H 152;
Delphi-Quellcode:
A,B,C beziehen sich auf die Excel Felder. Wie gesagt im Editor wird es korrekt angezeigt.
A1 = Fahrzeug; Kilometerstand; Farbe; Nummer; Kennzeichen;
A2 = Opel; 155555; B2=Gelb; 12345; C2= S-H 152; Also
Delphi-Quellcode:
Hintergrund : Es soll eine Schnittstelle werden. Die Daten werden im CSV Format übertragen!
Fahrzeug; Kilometerstand; Farbe; Nummer; Kennzeichen
Opel; 155555; Gelb; 12345; S-H 152; |
Re: CSV Datei erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
hm,
also das semikolon trennt doch die einzelnen Zellen voneinander. deswegen kann ich es mir nicht erklären, wieso excel das bei dir so anzeigt. im anhang siehst du, wie excel mir folgende CSV-datei anzeigt.
Code:
Fahrzeug; Kilometerstand; Farbe; Nummer; Kennzeichen;
Opel; 155555; Gelb; 12345; S-H 152; |
Re: CSV Datei erstellen
Liste der Anhänge anzeigen (Anzahl: 1)
die Datei soll nicht in Excel importiert werden, sonder über eine Webschnitstelle. Ich muss die Datei im CSV Format übergeben.
Vorlage wie es aussehen sollte ist im Anhang. |
Re: CSV Datei erstellen
hm in deinem code aus dem ersten beitrag sehe ich nirgends, dass du einen zeilenumbruch einfügst.
demnach würde sämtliche werte nacheinander in der textdatei stehen. und dann hast du den effekt, dass sich alle über eine zeile erstreckt. |
Re: CSV Datei erstellen
So was :
Delphi-Quellcode:
ist sehr gefährlich. Was soll das machen, bzw. warum ein String-Vergleich ? Die Daten sollen geschrieben werden, oder ? Die Knackpunkte wurden allerdings bereits genannt : Trennzeichen und Zeilenende. Der Savedialog verkompliziert die Sache sowieso. Schreibe doch besser zeilenweise.
if CBMwSt.Text = 'n.ausweisbar' then
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz