Frage

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

Zum Beispiel, wenn die CSV-Datei enthält

...,005,...

Dann zeigt Excel es als 5. Gibt es eine Möglichkeit, dies zu umgehen und Anzeigen 005?

Ich würde es vorziehen, etwas in die Datei selbst zu tun, so dass der Benutzer auf der CSV-Datei doppelklicken Sie könnte es zu öffnen.

Ich verwende Excel 2003.

War es hilfreich?

Lösung

Es gibt keine einfache Möglichkeit, die Formatierung Excel gilt zu steuern, wenn eine CSV-Datei zu öffnen. Allerdings unten sind drei Ansätze aufgelistet, die helfen 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 haben, werden die Daten als Formel gehalten, aber die Spalte Kopieren und spezielle Werte mit Paste wird die Beseitigung der Formel erhalten, aber die Formatierung beibehalten

Option 2 - die Daten Format

Wenn es einfach ein Format Problem ist und alle Ihre Daten in dieser Spalte hat eine drei Ziffern lang. Öffnen Sie dann die Daten in Excel und dann auf die Spalte formatiert die Daten mit diesem kundenspezifischen Format 000

enthalten

Option 3 - die Dateierweiterung ändern .dif (Data Interchange Format)

Ändern Sie die Dateierweiterung und verwenden Sie die Datei-Import-Assistenten, um die Formate zu steuern. Dateien mit einer Erweiterung .dif werden automatisch geöffnet von Excel, wenn doppelt geklickt wird.

Schritt für Schritt:

  • Ändern Sie die Dateierweiterung von CSV .dif
  • Klicken Sie doppelt auf die Datei, um es in Excel zu öffnen.
  • 'Datei-Import-Assistenten' wird gestartet.
  • Stellen Sie die ‚Dateityp‘ auf ‚Trennzeichen‘ und klicken Sie auf die Schaltfläche ‚Weiter‘.
  • Unter Trennzeichen, tick 'Comma' und klicken Sie auf die Schaltfläche 'Weiter'.
  • auf jede Spalte Ihrer Daten Klicken Sie auf das angezeigt wird, und wählen Sie eine ‚Datenformat der Spalten‘. Die Spalte mit dem Wert ‚005‘ sollte als ‚Text‘ formatiert werden.
  • Klicken Sie auf die Schaltfläche Fertig stellen, wird die Datei von Excel mit den Formaten geöffnet werden, die Sie festgelegt haben.

Andere Tipps

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

Es gibt viel mehr Kontrolle über die Formatierung und Excel versuchen, nicht den Typ eines Feldes zu erraten, indem er den Inhalt zu untersuchen. Es sieht ein bisschen kompliziert, aber man kann mit der Verwendung einer sehr kleinen Teil weg.

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

ich falsch verstanden die Präferenz des OP „etwas in die Datei selbst zu tun.“ Ich bin immer noch dies für diejenigen halten, die eine Lösung wollen, direkt den Import zu formatieren

  1. Öffnen Sie eine leere (neu) Datei (Datei -> Neu aus Arbeitsmappe)
  2. Öffnen Sie den Import-Assistenten (Data -> From Text)
  3. Wählen Sie Ihre CSV-Datei und Import
  4. Im Dialogfenster wählen Sie 'Trennzeichen', und klicken Sie auf Weiter.
  5. Wählen Sie die Trennzeichen (deaktivieren Sie alles andere als 'Komma'), wählen Sie Ihren Text-Qualifikation (wahrscheinlich {None}), klicken Sie auf Weiter
  6. Im Daten Vorschau Wählen Sie die Spalte Text sein soll. Es sollte darauf eingegangen werden.
  7. Im Datenformat der Spalten , wählen Sie 'Text'.
  8. Klicken Sie fertig.

Sie können einfach formatieren Sie Ihren Bereich als Text.

Auch hier ist ein schöner Artikel über die Zahlenformate und wie Sie sie programmieren.

Eigentlich habe ich entdeckt, dass, zumindest mit Office beginnend 2003 können Sie eine Excel-Tabelle als XML-Datei speichern. So kann ich eine XML-Datei erzeugen und wenn ich darauf doppelklicken, wird es in Excel geöffnet werden. Es bietet die gleiche Maß an Kontrolle als SYLK, aber XML-Syntax ist intuitiver.

Das Hinzufügen eines non-breaking Raum in der Zelle helfen könnte. Zum Beispiel: "firstvalue";"secondvalue";"005 ";"othervalue"

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

Versuchte auf Excel 2010. Hoffen, dass diese Menschen helfen kann, die noch eine ganz richtige Lösung für dieses Problem suchen.

hatte ich dieses Problem beim CSV-Daten von C # -Code zu exportieren, und aufgelöst dies durch das Voranstellen der führenden Null-Daten mit den Tab-Zeichen \ t, so wurden die Daten als Text interpretiert und nicht numerisch in Excel (noch im Gegensatz zu vorangestellt anderen Zeichen, es wäre nicht) zu sehen.

ich wie der = „001“ -Ansatz habe, aber dieses CSV-Daten nicht erlauben würde exportiert wieder aus der CSV-Datei importieren, ohne entfernen all diese Formatierung meiner C # Anwendung wieder importiert werden (anstatt werde ich schneide nur die Daten importieren).

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

laden csv in OLEDB und Kraft all abgeleiteten Datentypen String

, fragte ich die gleiche Frage und dann answerd es mit dem Code.

im Grunde, wenn die CSV-Datei der OLEDB-Treiber machen Annahmen geladen wird, können Sie ihnen sagen, welche Annahmen zu machen.

zwingt Mein Code alle Datentypen zu String obwohl ... es ist sehr leicht, das Schema zu ändern. i für meine Zwecke verwendet, um eine Xslt zu bekommen den Weg ti ich wollte - aber ich bin eine Vielzahl von Dateien Parsen

.

Ich weiß, das ist eine alte Frage, aber ich habe eine Lösung, die hier nicht aufgeführt ist.

Wenn Sie produzieren die csv ein Leerzeichen nach dem Komma, aber bevor Ihr Wert z.B. , 005,.

Das funktionierte automatische Datumsformatierung in Excel 2007 ohnehin zu verhindern.

Die Textimport-Assistenten Methode funktioniert nicht, wenn die CSV-Datei muss innerhalb einer Zelle bricht Linie importiert. Diese Methode verarbeitet dieses Szenario (zumindest mit Tabulator getrennten Daten):

  1. Erstellen Sie neue Excel-Datei
  2. Strg + A, um alle Zellen zu wählen
  3. In Nummer Format Combobox, wählen Sie Text
  4. Öffnen Sie den Tab getrennte Datei in Texteditor
  5. Wählen Sie alle, Kopieren und Einfügen in Excel

Dies ist fahrend mich den ganzen Tag verrückt (da in der Tat können Sie nicht die Excel-Spaltentypen steuern, bevor die CSV-Datei zu öffnen), und das war für mich, mit VB.NET und Excel Interop:

        'Convert .csv file to .txt file.
        FileName = ConvertToText(FileName)

        Dim ColumnTypes(,) As Integer = New Integer(,) {{1, xlTextFormat}, _
                                                        {2, xlTextFormat}, _
                                                        {3, xlGeneralFormat}, _
                                                        {4, xlGeneralFormat}, _
                                                        {5, xlGeneralFormat}, _
                                                        {6, xlGeneralFormat}}

        'We are using OpenText() in order to specify the column types.
        mxlApp.Workbooks.OpenText(FileName, , , Excel.XlTextParsingType.xlDelimited, , , True, , True, , , , ColumnTypes)
        mxlWorkBook = mxlApp.ActiveWorkbook
        mxlWorkSheet = CType(mxlApp.ActiveSheet, Excel.Worksheet)


Private Function ConvertToText(ByVal FileName As String) As String
    'Convert the .csv file to a .txt file.
    'If the file is a text file, we can specify the column types.
    'Otherwise, the Codes are first converted to numbers, which loses trailing zeros.

    Try
        Dim MyReader As New StreamReader(FileName)
        Dim NewFileName As String = FileName.Replace(".CSV", ".TXT")
        Dim MyWriter As New StreamWriter(NewFileName, False)
        Dim strLine As String

        Do While Not MyReader.EndOfStream
            strLine = MyReader.ReadLine
            MyWriter.WriteLine(strLine)
        Loop

        MyReader.Close()
        MyReader.Dispose()
        MyWriter.Close()
        MyWriter.Dispose()

        Return NewFileName
    Catch ex As Exception
        MsgBox(ex.Message)
        Return ""
    End Try

End Function

Wenn Sie eine CSV öffnen, erhalten Sie die Textimport-Assistenten. Im letzten Schritt des Assistenten, sollten Sie in der Lage sein, die bestimmte Spalte als Text zu importieren, wodurch den ‚00‘ Präfix zu halten. Danach können Sie dann formatieren Sie die Zelle jede mögliche Weise, die Sie wollen.

Ich habe versucht, mit mit Excel 2007 und es schien zu funktionieren.

Nun, Excel erscheint nie die Assistenten für CSV-Dateien. Wenn Sie es umbenennen, um .txt, werden Sie die Assistenten sehen, wenn Sie eine Datei> Öffnen in Excel das nächste Mal tun.

Setzen Sie ein Apostroph vor dem Feld. Excel wird es als Text behandeln, auch wenn es wie eine Zahl aussieht.

...,`005,...

EDIT: Das ist falsch. Der Apostroph Trick funktioniert nur, wenn die Daten direkt in Excel eingeben. Wenn Sie es in einer CSV-Datei verwenden, wird das Apostroph im Feld, was Sie nicht wollen.

http://support.microsoft.com/kb/214233

Fügen Sie einfach "vor der Nummer in der CSV-doc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top