| 

.NET C# Java Javascript Exception

5
Hallo,

exportiere aus einer Anwendung ein CSV. Darin sind Daten wie
4/2010
9/2003

Öffnet man das CSV in Excel, macht Excel daraus
Apr 2010
Sep 2003

Das soll aber nicht sein, sondern es soll tatsächlich
4/2010
9/2003

drin stehen. Wie muss ich das CSV formatieren? Hat jemand eine Idee?

Bernd
09.01.2013
Berndddd 33 1 5
3 Antworten
2
Ok, mein Fehler. Du darfst die CSV Datei in Excel nicht einfach öffnen sondern Du musst die Datei importieren. Dabei kannst Du über den Assistenten genau angeben, als was jede einzelne Spalte formatiert werden soll. Automatisieren, mit der entsprechenden Angabe kannst Du das ganze dann über VBA.

Angenommen die CSV Datei sieht so aus:
04/2010;"Dies ist ein Test";4711;
03/2010;"Dies ist ein Test";4711;

Ein Makro, welches diese Datei importiert, würde dann wie folgt aussehen

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\testcsv.csv", Destination:=Range("$A$1"))
.Name = "testcsv"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

Die Formatangabe ist hier
.TextFileColumnDataTypes = Array(2, 1, 1, 2)
angegeben. Drei Spalten. Erste Spalte 2 = Text, die restlichen Spalten 1 = Standard

Am besten bekommst Du das hin, wenn Du ein Makro aufzeichnest, wenn Du die CSV Datei zum ersten mal einliest.
09.01.2013
JEwen 2,7k 5
Das hört sich gut an. Werd ich probieren.
Berndddd 09.01.2013
2
Wenn Du allerdings Einfluss auf die Erzeugung der CSV-Datei hast, dann versuche mal die Spalte 04/2010 wie folgt in die CSV-Datei zu schreiben:

"=""04/2010"""

Aber bitte genauso wie oben gezeigt. Dies funktioniert bei mir.
09.01.2013
JEwen 2,7k 5
Ja, hab ich. Probiere ich aus.
Berndddd 09.01.2013
1
Du musst dafür sorgen dass Excel die Zahlen nicht interpretiert, also auf ein Datum schließt. Exportiere diese Spalte als Text. Statt 04/2010 sollte in der CSV "04/2010" stehen. Dann müsste Excel dies als Text interpretieren und die Daten nicht umwandeln.
09.01.2013
JEwen 2,7k 5
Ja, dachte ich auch. Klappt aber nicht. Wird leider auch umgewandelt.
Berndddd 09.01.2013

Stelle deine Programmieren-Frage jetzt!