Ich erstelle einen Bericht als CSV-Datei. Wenn ich versuche, die Datei in Excel zu öffnen, wird basierend auf dem Inhalt der Zelle eine Annahme über den Datentyp getroffen und entsprechend neu formatiert.
Zum Beispiel, wenn die CSV-Datei enthält
...,005,...
Dann zeigt Excel es als 5. Gibt es eine Möglichkeit, dies zu überschreiben und 005 anzuzeigen?
Ich würde es vorziehen, etwas mit der Datei selbst zu tun, damit der Benutzer einfach auf die CSV-Datei doppelklicken kann, um sie zu öffnen.
Ich benutze Excel 2003.
excel
csv
formatting
number-formatting
Sergey Stadnik
quelle
quelle
Antworten:
Es gibt keine einfache Möglichkeit, die Formatierung zu steuern, die Excel beim Öffnen einer CSV-Datei anwendet. Im Folgenden sind jedoch drei Ansätze aufgeführt, die hilfreich sein könnten.
Meine Präferenz ist die erste Option.
Option 1 - Ändern Sie die Daten in der Datei
Sie können die Daten in der CSV-Datei wie folgt ändern ..., = ”005” , ... Dies wird in Excel als ..., 005 , ... angezeigt.
Excel hat die Daten als Formel beibehalten, aber durch Kopieren der Spalte und Verwenden von Sonderwerten zum Einfügen wird die Formel entfernt, die Formatierung bleibt jedoch erhalten
Option 2 - Formatieren Sie die Daten
Wenn es sich lediglich um ein Formatproblem handelt und alle Ihre Daten in dieser Spalte eine dreistellige Länge haben. Öffnen Sie dann die Daten in Excel und formatieren Sie die Spalte mit den Daten mit diesem benutzerdefinierten Format 000
Option 3 - Ändern Sie die Dateierweiterung in .dif (Datenaustauschformat)
Ändern Sie die Dateierweiterung und steuern Sie die Formate mit dem Dateiimport-Assistenten. Dateien mit der Erweiterung .dif werden bei Doppelklick automatisch von Excel geöffnet.
Schritt für Schritt:
quelle
Verwenden Sie kein CSV, sondern SYLK.
http://en.wikipedia.org/wiki/SYmbolic_LinK_(SYLK)
Es gibt viel mehr Kontrolle über die Formatierung, und Excel wird nicht versuchen, den Typ eines Feldes durch Untersuchen des Inhalts zu erraten. Es sieht ein bisschen kompliziert aus, aber Sie können mit einer sehr kleinen Teilmenge davonkommen.
quelle
Dies funktioniert für Microsoft Office 2010, Excel Version 14
Ich habe die Präferenz des OP "etwas mit der Datei selbst zu tun" falsch verstanden. Ich behalte dies immer noch für diejenigen, die eine Lösung wünschen, um den Import direkt zu formatieren
quelle
Sie können Ihren Bereich einfach als Text formatieren.
Auch hier ist ein schöner Artikel über die Zahlenformate und wie man sie programmieren kann.
quelle
Eigentlich habe ich festgestellt, dass Sie zumindest ab Office 2003 eine Excel-Tabelle als XML-Datei speichern können. Auf diese Weise kann ich eine XML-Datei erstellen. Wenn ich darauf doppelklicke, wird sie in Excel geöffnet. Es bietet die gleiche Kontrollebene wie SYLK, die XML-Syntax ist jedoch intuitiver.
quelle
Das Hinzufügen eines nicht unterbrechenden Bereichs in der Zelle könnte hilfreich sein. Zum Beispiel:
"firstvalue";"secondvalue";"005 ";"othervalue"
Es zwingt Excel, es als Text zu behandeln, und der Bereich ist nicht sichtbar. Unter Windows können Sie ein nicht unterbrechendes Leerzeichen hinzufügen, indem Sie Alt + 0160 eingeben. Weitere Informationen finden Sie hier: http://en.wikipedia.org/wiki/Non-breaking_space
Versucht in Excel 2010. Ich hoffe, dies kann Menschen helfen, die immer noch nach einer geeigneten Lösung für dieses Problem suchen.
quelle
Ich hatte dieses Problem beim Exportieren von CSV-Daten aus C # -Code und habe es behoben, indem ich den führenden Nulldaten das Tabulatorzeichen \ t voranstellte, sodass die Daten in Excel eher als Text als als numerisch interpretiert wurden (im Gegensatz zu anderen Zeichen jedoch nicht). nicht gesehen werden).
Ich mochte den Ansatz = "001", aber dies würde nicht ermöglichen, dass exportierte CSV-Daten erneut in meine C # -Anwendung importiert werden, ohne all diese Formatierungen aus der Import-CSV-Datei zu entfernen (stattdessen schneide ich nur die Importdaten ab). .
quelle
Ich glaube, wenn Sie die Datei importieren, können Sie den Spaltentyp auswählen. Machen Sie es Text statt Zahl. Ich habe momentan keine Kopie vor mir, die ich überprüfen könnte.
quelle
Laden Sie csv in oleDB und zwingen Sie alle abgeleiteten Datentypen zur Zeichenfolge
Ich stellte die gleiche Frage und beantwortete sie dann mit Code.
Wenn die CSV-Datei geladen wird, trifft der Oledb-Treiber im Grunde genommen Annahmen. Sie können ihm mitteilen, welche Annahmen zu treffen sind.
Mein Code zwingt jedoch alle Datentypen zur Zeichenfolge ... es ist sehr einfach, das Schema zu ändern. Für meine Zwecke habe ich ein xslt verwendet, um ti so zu bekommen, wie ich es wollte - aber ich analysiere eine Vielzahl von Dateien.
quelle
Ich weiß, dass dies eine alte Frage ist, aber ich habe eine Lösung, die hier nicht aufgeführt ist.
Wenn Sie die CSV erstellen, fügen Sie ein Leerzeichen nach dem Komma, aber vor Ihrem Wert ein, z
, 005,
.Dies hat sowieso dazu beigetragen, die automatische Datumsformatierung in Excel 2007 zu verhindern.
quelle
Die Methode des Textimport-Assistenten funktioniert NICHT, wenn die zu importierende CSV-Datei Zeilenumbrüche in einer Zelle enthält. Diese Methode behandelt dieses Szenario (zumindest mit tabulatorgetrennten Daten):
quelle
Fügen Sie einfach 'vor der Nummer im CSV-Dokument hinzu.
quelle
Das hat mich den ganzen Tag verrückt gemacht (da Sie die Excel-Spaltentypen vor dem Öffnen der CSV-Datei nicht steuern können), und das hat bei mir mit VB.NET und Excel Interop funktioniert:
quelle
Beim Öffnen einer CSV erhalten Sie den Textimport-Assistenten. Im letzten Schritt des Assistenten sollten Sie in der Lage sein, die bestimmte Spalte als Text zu importieren, wobei das Präfix '00' beibehalten wird. Danach können Sie die Zelle nach Ihren Wünschen formatieren.
Ich habe es mit Excel 2007 versucht und es schien zu funktionieren.
quelle
Excel öffnet den Assistenten für CSV-Dateien nie. Wenn Sie es in .txt umbenennen, wird der Assistent angezeigt, wenn Sie das nächste Mal eine Datei> In Excel öffnen ausführen.
quelle
Stellen Sie ein einfaches Anführungszeichen vor das Feld. Excel behandelt es als Text, auch wenn es wie eine Zahl aussieht.
EDIT: Das ist falsch. Der Apostroph-Trick funktioniert nur, wenn Daten direkt in Excel eingegeben werden. Wenn Sie es in einer CSV-Datei verwenden, wird das Apostroph in dem Feld angezeigt, das Sie nicht möchten.
http://support.microsoft.com/kb/214233
quelle