Frage Excel CSV - Zahlenzellenformat


Ich produziere einen Bericht als CSV-Datei. Wenn ich versuche, die Datei in Excel zu öffnen, nimmt sie basierend auf dem Inhalt der Zelle eine Annahme über den Datentyp vor und formatiert sie entsprechend neu.

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 an der Datei selbst vorzunehmen, damit der Benutzer einfach auf die CSV-Datei doppelklicken kann, um sie zu öffnen.

Ich benutze Excel 2003.


76
2017-09-26 02:07


Ursprung


Antworten:


Es gibt keine einfache Möglichkeit, die Formatierung zu steuern, die Excel beim Öffnen einer CSV-Datei anwendet. Im Folgenden sind drei Ansätze aufgeführt, die hilfreich sein könnten.

Meine Vorliebe 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 ... angezeigt.005, ...

Excel wird die Daten als Formel behalten, aber das Kopieren der Spalte und das Einfügen von Sonderwerten werden die Formel loslassen, aber die Formatierung beibehalten

Option 2 - Formatieren Sie die Daten

Wenn es sich nur um ein Formatproblem handelt und alle Ihre Daten in dieser Spalte dreistellig sind. Öffnen Sie dann die Daten in Excel und formatieren Sie anschließend die Spalte mit den Daten in diesem benutzerdefinierten Format 000

Option 3 - Ändern Sie die Dateierweiterung in .dif (Datenaustauschformat)

Ändern Sie die Dateierweiterung und verwenden Sie den Dateiimport-Assistenten, um die Formate zu steuern. Dateien mit der Erweiterung .dif werden beim Doppelklicken automatisch von Excel geöffnet.

Schritt für Schritt:

  • Ändern Sie die Dateierweiterung von .csv zu .dif
  • Doppelklicken Sie auf die Datei, um sie in Excel zu öffnen.
  • Der Dateiimport-Assistent wird gestartet.
  • Setzen Sie den 'Dateityp' auf 'Getrennt' und klicken Sie auf 'Weiter'.
  • Unter Trennzeichen, klicken Sie auf "Komma" und klicken Sie auf "Weiter".
  • Klicken Sie auf jede Spalte Ihrer Daten, die angezeigt wird, und wählen Sie ein "Column Data Format". Die Spalte mit dem Wert '005' sollte als 'Text' formatiert sein.
  • Klicken Sie auf die Schaltfläche Fertig, die Datei wird von Excel mit den von Ihnen angegebenen Formaten geöffnet.

108
2017-09-26 21:23



Verwenden Sie keine CSV, verwenden Sie SYLK.
http://en.wikipedia.org/wiki/Symbolic_LinK_(SYLK)

Es gibt viel mehr Kontrolle über die Formatierung, und Excel versucht nicht, den Typ eines Felds zu erraten, indem es den Inhalt untersucht. Es sieht ein wenig kompliziert aus, aber Sie können mit einer sehr kleinen Untermenge davonkommen.


27
2017-09-26 02:49



Dies funktioniert für Microsoft Office 2010, Excel Version 14

Ich habe die Präferenz des OP falsch verstanden, "etwas mit der Datei selbst zu machen". Ich halte dies immer noch für diejenigen, die eine Lösung wünschen, um den Import direkt zu formatieren

  1. Öffnen Sie eine leere (neue) Datei (Datei -> Neu aus der Arbeitsmappe)
  2. Öffnen Sie den Import-Assistenten (Daten -> Aus Text)
  3. Wählen Sie Ihre .csv-Datei und importieren
  4. Wählen Sie im Dialogfeld "Getrennt" und klicken Sie auf Weiter.
  5. Wählen Sie Ihre Trennzeichen (deaktivieren Sie alles außer "Komma"), wählen Sie Ihre Textkennzeichner (wahrscheinlich {Keine}), und klicken Sie auf Weiter
  6. In dem Datenvorschau Wählen Sie die Spalte, die Sie als Text verwenden möchten. Es sollte hervorgehoben werden.
  7. In dem Spalten-Datenformat Wählen Sie "Text".
  8. Klicken Sie auf Fertig.

14
2018-05-15 21:27



Sie können Ihren Bereich einfach als Text formatieren.

Ebenfalls Hier ist ein schöner Artikel über die Zahlenformate und wie man sie programmieren kann.


2
2017-09-26 02:10



Tatsächlich habe ich festgestellt, dass Sie, zumindest ab Office 2003, eine Excel-Tabelle als XML-Datei speichern können. So kann ich eine XML-Datei erzeugen und wenn ich darauf doppelklicke, wird sie in Excel geöffnet. Es bietet die gleiche Kontrolle wie SYLK, aber die XML-Syntax ist intuitiver.


2
2017-09-26 04:29



Das Hinzufügen eines nicht brechenden Speicherplatzes in der Zelle könnte hilfreich sein. Zum Beispiel: "firstvalue";"secondvalue";"005 ";"othervalue"

Es zwingt Excel, es als einen Text zu behandeln, und der Raum ist nicht sichtbar. Unter Windows können Sie ein geschütztes Leerzeichen hinzufügen, indem Sie Alt + 0160 kippen. Sehen Sie hier für weitere Informationen: http://en.wikipedia.org/wiki/Non-breaking_space

In Excel 2010 versucht. Hoffe, das kann Menschen helfen, die immer noch eine recht gute Lösung für dieses Problem suchen.


2
2017-10-09 14:01



Ich hatte dieses Problem beim Export von CSV-Daten aus C # -Code und löste dies, indem ich die führenden Null-Daten mit dem Tab-Zeichen vorlegte, so dass die Daten in Excel als Text und nicht als Zahl interpretiert wurden. t gesehen werden).

Ich mag den = "001" -Ansatz, aber das würde nicht erlauben, exportierte CSV-Daten wieder in meine C # -Anwendung zu importieren, ohne diese Formatierung aus der CSV-Importdatei zu entfernen (stattdessen werde ich einfach die Importdaten abschneiden) .


2
2018-01-24 11:20



Ich glaube, wenn Sie die Datei importieren, können Sie den Spaltentyp auswählen. Machen Sie es Text statt Nummer. Ich habe im Moment keine Kopie vor mir, um das zu überprüfen.


1
2017-09-26 02:10



Laden Sie csv in OleDB und erzwingen Sie alle abgeleiteten Datentypen als Zeichenfolge

Ich stellte die gleiche Frage und beantwortete sie dann mit Code.

Grundsätzlich, wenn die CSV-Datei geladen ist, macht der Oledb-Treiber Annahmen, Sie können ihm sagen, welche Annahmen zu treffen sind.

Mein Code zwingt alle Datentypen in String, aber es ist sehr einfach das Schema zu ändern. Für meine Zwecke habe ich einen XSLT verwendet, um den gewünschten Weg zu finden - aber ich analysiere eine Vielzahl von Dateien.


1
2017-12-22 14:05