Ich weiß, dass dies eine alte Frage ist, aber das Problem wird nicht bald verschwinden. CSV-Dateien lassen sich leicht aus den meisten Programmiersprachen generieren, sind eher klein, in einem Crunch mit einem einfachen Texteditor lesbar und allgegenwärtig.
Das Problem liegt nicht nur bei Datumsangaben in Textfeldern, sondern alles , was numerisch ist, wird auch von Text in Zahlen umgewandelt. Einige Beispiele, bei denen dies problematisch ist:
- Postleitzahl
- Telefonnummern
- Regierungs-ID-Nummern
Dies kann manchmal mit einer oder mehreren Nullen (0) beginnen, die bei der Konvertierung in eine numerische Zahl weggeworfen werden. Oder der Wert enthält Zeichen, die mit mathematischen Operatoren verwechselt werden können (wie in Datum: /, -).
Zwei Fälle, an die ich denken kann, dass die "prepending =" - Lösung, wie bereits erwähnt, möglicherweise nicht ideal ist, ist
- wo die Datei möglicherweise in ein anderes Programm als MS Excel importiert wird (die Seriendruckfunktion von MS Word fällt mir ein),
- wo menschliche Lesbarkeit wichtig sein könnte.
Mein Hack, um das zu umgehen
Wenn dem Wert ein nicht numerisches und / oder nicht datiertes Zeichen vorangestellt wird, wird der Wert als Text erkannt und nicht konvertiert. Ein nicht druckbares Zeichen wäre gut, da es den angezeigten Wert nicht ändert. Das einfache alte Leerzeichen (\ s, ASCII 32) funktioniert hierfür jedoch nicht, da es von Excel abgeschnitten wird und der Wert dann immer noch konvertiert wird. Es gibt jedoch verschiedene andere druckbare und nicht druckbare Leerzeichen, die gut funktionieren. Am einfachsten ist es jedoch, das einfache Tabulatorzeichen (\ t, ASCII 9) anzuhängen (nachher hinzuzufügen).
Vorteile dieses Ansatzes:
- Erhältlich über die Tastatur oder mit einem leicht zu merkenden ASCII-Code (9).
- Es stört den Import nicht,
- Normalerweise stören die Ergebnisse des Seriendrucks nicht (abhängig vom Vorlagenlayout - normalerweise wird jedoch nur ein großer Abstand am Ende einer Zeile hinzugefügt). (Wenn dies jedoch ein Problem darstellt, sehen Sie sich andere Zeichen an, z. B. den Raum mit der Breite Null (ZWSP, Unicode U + 200B).
- ist kein großes Hindernis beim Anzeigen der CSV im Editor (usw.),
- und könnte durch Suchen / Ersetzen in Excel (oder Editor usw.) entfernt werden.
- Sie müssen die CSV nicht importieren , sondern können einfach doppelklicken, um die CSV in Excel zu öffnen .
Wenn es einen Grund gibt, warum Sie die Registerkarte nicht verwenden möchten, suchen Sie in einer Unicode-Tabelle nach etwas anderem Passendem.
Andere Option
Möglicherweise werden XML-Dateien generiert, für die ein bestimmtes Format auch von neueren MS Excel-Versionen für den Import akzeptiert wird und die viel mehr Optionen ähnlich dem XLS-Format zulassen, aber ich habe keine Erfahrung damit.
Es gibt also verschiedene Möglichkeiten. Abhängig von Ihren Anforderungen / Ihrer Anwendung ist möglicherweise eine besser als die andere.
Zusatz
Es muss gesagt werden, dass neuere Versionen (2013+) von MS Excel die CSV nicht mehr im Tabellenformat öffnen - ein weiterer Speedbump im Workflow macht Excel weniger nützlich ... Zumindest gibt es Anweisungen, um das Problem zu umgehen. Siehe z. B. diesen Stackoverflow: Wie werden CSV- Dateien in Excel 2013 korrekt angezeigt?
.