Ich habe Python benutzt, um eine CSV-Datei zu erzeugen. Aber wenn ich es in Excel öffne, erkennt Excel automatisch eine Zeichenfolge in einer Zahl, wenn sie konvertiert werden könnte.
z. B. 33E105
wird 33*10^105
, was eigentlich eine ID ist, keine Zahl.
Wie kann ich dies beim Öffnen einer CSV-Datei in Excel deaktivieren? Oder ich muss auf eine Excel-Python-Bibliothek zurückgreifen, um eine Excel-Datei auszugeben und das Format selbst anzugeben?
Ich fand auch eine ähnliche Frage ohne gute Antworten im Internet.
Danke!
Um tatsächliche .xls
-Dateien in Python zu schreiben, anstatt .csv
, die Excel möglicherweise falsch interpretiert, können Sie das xlwt
Sie könnten ihm ein einfaches Anführungszeichen voranstellen und es zu Text zwingen.
Eine lustige Antwort ist, dass Sie die ersten acht Zeilen leer lassen könnten (es verarbeitet nur die ersten acht Zeilen, um den Datentyp zu bestimmen), obwohl ich denke, dass damit alle Ihre Daten vollständig gelöscht werden können. Sie können diese leeren Zeilen ausblenden.
Sie haben 3 Optionen:
Geben Sie eine speziell formatierte XML-Datei aus, die Excel lesen kann. Ich erinnere mich an keine Details, aber wenn ich interessiert bin, kann ich sie ausgraben. Wir haben das mit unserem Perl-Code gemacht. Ich weiß nicht, ob Excel-Python genau das tut.
Platzieren Sie '
(Apostroph) vor jeder Zeichenfolge.
Verwenden Sie eine Bibliothek, die native Excel-Dateien mit der richtigen Formatierung ausgibt. Keine Ahnung, ob es solche für Python gibt, aber in jedem Fall ist es eine Art Overkill-Variante der ersten Option.
Ich denke, du kannst ein einzelnes '
davor setzen, um zu verhindern, dass numerische Strings in ints umgewandelt werden
ZB
%Vor%OpenXML ist eine flexiblere (und kompliziertere) Option, funktioniert aber nur mit Office 2003 oder neuer und ist für dieses Problem übertrieben. Geeignet für Fälle, in denen Zellen / mehrere Blätter hervorgehoben werden müssen.
Wenn Sie nicht ändern möchten, wie Sie die CSV-Datei schreiben, können Sie den Text-Import-Assistenten in Excel verwenden, um festzulegen, wie die einzelnen Spalten behandelt werden sollen. Im Assistenten gibt es einen Schritt, mit dem Sie auswählen können, um welche Art von Daten es sich in jeder Spalte handelt. Stellen Sie die gewünschten Spalten auf Text ein und behandeln Sie sie als Zeichenfolge.