Ich arbeite an einem Stück Code von zwei Computern. Ich benutze openpyxl, um Daten aus einem Excel-Blatt zu lesen, mit load_workbook
Schlüsselwort Argumente data_only=True
und use_iterators=True
. Abhängig davon, welchen Computer ich verwende, muss ich entweder cell.value
oder cell.internal_value
verwenden. Warum ist das der Fall?Verwendung von cell.value vs cell.internal_value für openpexl's iter_rows() Methode
Hier ist der Lese:
raw_rows = []
for row in openpyxl_sheet.iter_rows():
# raw_rows.append([cell.internal_value for cell in row])
raw_rows.append([cell.value for cell in row])
return raw_rows
als eine vorübergehende Lösung, ich habe zwischen den Linien 3 und 4
Auf einem Computer tauschen, gibt cell.value
mir die Datenzelle und cell.internal_value
führt den folgenden Attributfehler:
AttributeError: 'RawCell' object has no attribute 'value'
auf dem anderen Computer, die beide cell.value
und cell.internal_value
geben Sie mir Daten, aber nur cell.internal_value
gibt die richtigen Daten.
Von dem, was ich vom Lesen anderer Fragen auf der Website erzählen kann, sollte ich cell.internal_value
für beide verwenden. Ich habe Anaconda benutzt, um openpyxl auf beiden Rechnern zu installieren.
Vor openpxl Version 2 war die API für die verschiedenen Modi unterschiedlich. : -/Das ist nicht mehr der Fall. Bei der Arbeit an verschiedenen Rechnern lohnt es sich immer, die gleiche Version der Bibliotheken auf jedem Rechner zu verwenden. –