openpyxl Bitte nehmen Sie beim Importieren keinen Text als Zahl an
Es gibt zahlreiche Fragen, wie Sie verhindern können, dass Excel Text als Zahl interpretiert, oder wie Sie Zahlenformate mit openpyxl ausgeben. Für dieses Problem habe ich jedoch keine Lösung gefunden:
Ich habe eine Excel-Tabelle von einer anderen Person erhalten, deshalb habe ich sie nicht erstellt. Wenn ich die Datei mit Excel öffne, werden scheinbar bestimmte Werte wie "5E12" (Klonnummern, falls es jemanden interessiert) korrekt angezeigt, aber neben jedem befindet sich ein kleiner grüner Pfeil mit der Warnung "Dies scheint eine Zahl zu sein als Text gespeichert ". Excel fragt mich dann, ob ich es in eine Zahl umwandeln möchte, und wenn ich ja gesehen habe, erhalte ich 5000000000000, die sich dann automatisch in wissenschaftliche Notation umwandelt und wieder 5E12 anzeigt, nur würde diesmal eine Textausgabe die vollständige Zahl mit Nullen zeigen . Beachten Sie, dass dies vor der Konvertierung wirklich Text ist, sogar in Excel, und ich werde nur gewarnt / aufgefordert, ihn zu konvertieren.
Wenn Sie diese Datei mit openpyxl einlesen (aus openpyxl.reader.excel import load_workbook), wird der 5E12 automatisch in 5000000000000 konvertiert. Ich gehe davon aus, dass openpyxl die gleiche Annahme wie Excel macht, nur die Konvertierung erfolgt ohne oder Input meinerseits.
Wie kann ich das verhindern? Ich möchte nicht, dass Text, der aussieht wie "Zahlen, die als Text gespeichert sind", in Zahlen umgewandelt wird. Sie sind Text, wenn ich es nicht sage.
Die einzige Lösung, die ich bisher gefunden habe, ist das Hinzufügen von einfachen Anführungszeichen vor jeder Zelle. Dies ist jedoch keine ideale Lösung, da es sich eher um Handarbeit als um eine programmatische Lösung handelt. Außerdem muss die Lösung allgemein sein, da ich nicht immer weiß, wo dieses Problem auftreten kann (ich lese täglich Millionen von Zeilen, also möchte ich nichts von Hand tun müssen).
I denken das ist ein problem mit openpyxl. Es gibt eine Google-Gruppendiskussion von Anfang 2011, in der dieses Problem erwähnt wird, aber davon ausgegangen wird, dass es zu selten ist.https://groups.google.com/forum/?fromgroups=#!topic/openpyxl-users/HZfpShMp8Tk
Also irgendwelche Vorschläge?