AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Textkennzeichnung csv Datei für Excel
Thema durchsuchen
Ansicht
Themen-Optionen

Textkennzeichnung csv Datei für Excel

Ein Thema von stalkingwolf · begonnen am 15. Mär 2016 · letzter Beitrag vom 17. Mär 2016
Antwort Antwort
Seite 1 von 2  1 2      
stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#1

Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 15:11
Hallo zusammen.

das ganze hat nun nichts mit Delphi zu tun.

Excel hat diese "clevere" automatische Importfunktion von Dateien die mit .csv enden.
Problem sind dabei Postleitzahlen und Telefonnummern die mit 0 beginnen.
Excel erkennt das ganze als Text und wirft die 0 raus.

Das ganze kann man umgehen mit ="0123456" in der Zelle. Zwar liest man häufig mit "0123456" aber das gilt nur für den Importassistenten. Für den Autoimport bei .csv braucht man scheinbar das ="" .

Wurde die Datei dann geöffnet und man speichert sind die Markierungen wieder weg und beim erneuten Öffnen hat man wieder das Problem von ganz oben. Ich frage mich da wirklich was derjenige gesoffen hat der das programmiert hat.

Ich kenne mich leider nicht wirklich gut mit Excel aus. Kennt jemand einen Magic Trick womit man das lösen kann?
Weil der Output muss .csv sein und der Kunde will die Datei in Excel öffnen, nachbearbeiten und auch wieder in .csv speichern.
Und daher brauche ich das ="". Wenn der Kunde aber die Datei nicht bearbeitet, dann hat die nächste Stelle das ="" drin und jammert.
  Mit Zitat antworten Zitat
bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 15:41
Man kann Text in Excel auch mit einem führendem Hochkomma markieren: '123
Hilft das vielleicht?

Edit: gerade getestet, beim Speichern schmeisst Excel das Hochkomma auch wieder raus.
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 15:43
Wie sieht es denn mit dem Hochkomata aus?
Also statt ="03" einfach '03 in eine Zelle schreiben, dann weiß Excel, dass es ein String sein soll.
Keine Ahnung, ob das den Ex-/Import überlebt.

Meines Wissens kann es auch schon mal einen Unterschied machen, ob man auf eine csv-Datei klickt und diese dann mit Excel als Standardprogramm geöffnet wird oder ob man in Excel über "Datei öffnen" eine csv-Datei auswählt und dann erstmal der Import-Assistent startet.

Edit, hier eine Anleitung mit ein paar Bildern, genau zu dem Problem, wo der Import-Assistent benutz wird:
http://www.upenn.edu/computing/da/bo...dingZeros.html
Ralph

Geändert von Jumpy (15. Mär 2016 um 15:50 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#4

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 15:46
=xxx bedeutet, dass das als "Formel" ausgewertet wird.
Beim Speichern (CSV-Export) wird aber der Feldinhalt und nicht die Formel gespeichert.

Es gäbe da noch den Trick mit einer Hilfsspalte 0123456,=TEXT(A1;"000000"),456789 (A1,B1,C1)

ODER man nimmt eben nicht den Auto-Import, sondern sagt "manuell" beim Import, dass diese Spalte ein TEXT und keine ZAHL ist.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Geda

Registriert seit: 24. Jul 2015
20 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 16:13
Wobei wir (bei expliziter Definition als "Text") das dann wieder mit Delphi erschlagen könnten:

// Datei als Stringliste einlesen
...
// Excel als OLE-Objekt erzeugen
vWorkSheet : OLEVariant;
...
// Range als "Text" festlegen
vWorkSheet.Range[Von:Bis].NumberFormat := '@';
...
// Schleife durch Liste, zellenweise eintragen
vWorkSheet.Cells(Reihe, Spalte) := '012345';
Geert
  Mit Zitat antworten Zitat
stalkingwolf

Registriert seit: 6. Mai 2011
540 Beiträge
 
#6

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 16:23
der Import-Assistent steht leider nicht zur Diskussion. Den möchte unser Kunde nicht benutzen, verständlicherweise, weil er zu aufwendig ist und auch Spielraum für Fehler lässt.

' oder " funktioniert nur beim manuellen Import. Das kann man auf Seite 2 vom Assistenten auswählen.

Wenn man z.b eine Datei erstellt und folgendes reinschreibt und als .csv speichert
Code:
"0123456";'0123456';="0123456"
dann kommt folgendes in Excel raus

Code:
0123456   |   '0123456'  |    0123456
Direkt in Excel kann ich es auch nicht öffnen, weil die .csv Datei per Email(Mapi) versendet wird.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 16:46
Weil der Output muss .csv sein und der Kunde will die Datei in Excel öffnen, nachbearbeiten und auch wieder in .csv speichern.
Alternative: Wenn du eine .XLS erstellst (womöglich auch noch mit Excel automatisch öffnest) und der Kunde diese dann als .CSV speichert, ist die Kuh vom Eis
Gruss Otto
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 17:19
der Import-Assistent steht leider nicht zur Diskussion. Den möchte unser Kunde nicht benutzen, verständlicherweise, weil er zu aufwendig ist und auch Spielraum für Fehler lässt.
Dann sollte er aber ein Problem mit Excel2013 bekommen, das akzeptiert .CSV Dateien (richtig) nur über Daten->Externe Daten abrufen->aus Text.

Und die Verwendung von ;="123" ist doch sehr Excel-spezifisch.

ggf. hilft es eine Spalte mit "Text" vor zu belegen? vgl. #4

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.736 Beiträge
 
Delphi 6 Enterprise
 
#9

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 17:27
der Import-Assistent steht leider nicht zur Diskussion. Den möchte unser Kunde nicht benutzen, verständlicherweise, weil er zu aufwendig ist und auch Spielraum für Fehler lässt.
Irgendeinen Tod muss man sterben. Entweder den Assistenten nutzen, dafür ist er da. Oder Open Office benutzen (das hat dieses Problem angeblich nicht) oder ein Makro schreiben, das entsprechend die Datei mit den richtigen Einstellungen für den Assistenten öffnet (Da können die Mitarbeiter nichts mehr falsch machen, müssen nur das Makro starten, dass natürlich in einer anderen Excel-Datei liegen muss, also auch nicht wirklich schön). Oder halt mit Excel-Dateien arbeiten.

Alles nicht schön. Ich glaube nicht, dass du die .csv Datei so schreiben kannst, dass Excel sie pauschal richtig öffnet und das eventuelle andere Programme sie auch richtig öffnen.
Wenn du im Netz suchst wird du massige Stellen finden, die auch dieses Problem beschreiben und wo letztlich keine schöne Lösung aus dem Hut gezaubert wird, sondern nur die bereits genannten "Workarrounds".
Ralph
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: Textkennzeichnung csv Datei für Excel

  Alt 15. Mär 2016, 18:13
ot
keine Lösung:

Sag dem Kunden, dass es nicht geht.
Wenn ich ein Auto kaufe, kann ich mit damit auch nicht in die Kurve legen, als sei es ein Motorrad.
Auch nicht, wenn ich mit dem Fuß aufstampfe und dem Verkäufer sage, ich will aber, dass das geht.

/ot
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz