Ich wollte eine Datei mit Text, Zahlen und Datumsangaben mit xlrd auf Python importieren.
Ich habe versucht, etwas wie:
%Vor%Aber das war nutzlos, da ich entdeckte, dass Datumsangaben als Floats, nicht als Strings gespeichert sind. Um sie in Datetime-Typ zu konvertieren, habe ich:
%Vor%Ich habe eine Ausnahme, wenn die Zelle Text enthält. Jetzt möchte ich die Zahlen als Zahlen und die Daten als Daten bekommen, weil gerade jetzt alle Zahlen in Daten umgewandelt werden.
Irgendwelche Ideen?
Nun, vergiss es, ich habe eine Lösung gefunden und hier ist es!
%Vor%Ein bisschen Erklärung: Es stellt sich heraus, dass Sie mit xlrd tatsächlich den Typ einer Zelle überprüfen und prüfen können, ob es ein Datum ist oder nicht. Excel scheint auch eine seltsame Möglichkeit zu haben, Tageszeiten zu speichern. Es speichert sie als schwimmt (linker Teil für Tage, rechter Teil für Stunden) und dann dauert es ein bestimmtes Datum (1899, 12, 30, scheint OK zu arbeiten) und addiert die Tage und die Stunden vom Floss, um das Datum zu verursachen. Also, um das Datum zu erstellen, das ich wollte, fügte ich sie nur hinzu und behielt nur die 10 ersten Buchstaben ([: 10]), um die Stunden (00.00.00 oder etwas ...) loszuwerden. Ich änderte auch die Reihenfolge der Tage_Monate-Jahre, weil wir in Griechenland eine andere Reihenfolge verwenden. Schließlich überprüft dieser Code auch, ob er eine Zahl in eine Ganzzahl konvertieren kann (ich möchte keine Gleitkommazahlen in meinem Programm anzeigen ...) und wenn alles fehlschlägt, verwendet es einfach die Zelle, so wie sie ist (falls es solche gibt) Strings in den Zellen ...). Ich hoffe, dass Sie das nützlich finden, ich denke, es gibt andere Threads, die sagen, dass dies unmöglich ist oder etwas ...
Ich denke, Sie könnten das viel einfacher machen, indem Sie die in xlrd verfügbaren Tools besser nutzen:
%Vor%