/ / Öffnen und Lesen einer Excel. Xlsx-Datei in Python - Python, Excel, Python-2.7, Pandas, Xlrd

Öffnen und Lesen einer Excel .xlsx-Datei in Python - Python, Excel, Python-2.7, Pandas, XLRD

Ich versuche ein Excel zu öffnen.xlsx-Datei mit Python, aber ich bin nicht in der Lage, einen Weg zu finden, ich habe versucht, Pandas, aber es möchte eine Bibliothek namens NumPy Ich habe versucht, installieren numpy, aber es kann immer noch nicht finden.

Ich habe auch versucht, die xlrd-Bibliothek zu verwenden, aber ich bekomme die folgende traceback:

Traceback (most recent call last):
File "C:test.py", line 3, in <module>
book = open_workbook("test.xlsx")
File "C:Python27libsite-packagesxlrd__init__.py", line 370, in open_workbook
biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
File "C:Python27libsite-packagesxlrd__init__.py", line 1323, in getbof
raise XLRDError("Expected BOF record; found 0x%04x" % opcode)
XLRDError: Expected BOF record; found 0x4b50

Was ich vermute, ist, dass XLRD .xlsx Dateien nicht lesen kann?

Hat jemand irgendwelche Ideen?

BEARBEITEN:

import csv
with open("test.csv", "rb") as csvfile:
data = csv.reader(csvfile, delimiter=",")
for row in data:
print "------------------"
print row
print "------------------"
for cell in row:
print cell

Antworten:

11 für die Antwort № 1

Vielleicht könnten Sie Ihre .xlsx in eine .csv-Datei exportieren?

Dann könntest du versuchen:

import csv
with open("file.csv","rb") as file:
contents = csv.reader(file)
[x for x in contents]

Dies kann nützlich sein: http://docs.python.org/2/library/csv.html#csv.reader

Ich hoffe, das hilft!

BEARBEITEN:

Wenn Sie eine spektische Zelle wie F13 suchen möchten, können Sie eine verschachtelte Liste wie eine Matrix erstellen und auf jedes Element verweisen:

import csv
with open("file.csv","rb") as file:
contents = csv.reader(file)
matrix = list()
for row in contents:
matrix.append(row)

Und dann Zugriff auf F13 mit matrix[5][12].

PS .: Ich habe das nicht getestet. Wenn "row" eine Liste mit jeder Zelle als Element ist, fügen Sie alle Zeilen an die Matrix an, so dass der erste Index die Zeilennummer und der zweite die Spaltennummer ist.


2 für die Antwort № 2

Es scheint, dass Sie auf einem Linux Distro sind. Ich hatte das gleiche Problem und dies passiert nicht mit "xlwt" -Bibliothek, sondern nur mit "xlrd". Was ich getan habe, ist nicht der richtige Weg, um dieses Problem zu lösen, aber es lässt die Dinge vorerst funktionieren, um hoffentlich bald eine Antwort auf diese Frage zu bekommen: Ich habe "xlrd" unter Windows installiert und den Ordner unter Linux in den Ordner eingefügt Verzeichnis, wo mein Python-Code ist und es funktioniert.


2 für die Antwort № 3

Da ich weiß, dass andere Leute auch das lesen werden -

Sie können das folgende Modul installieren (es ist nicht automatisch da) https://pypi.python.org/pypi/openpyxl

Sie können die folgenden Informationen lesen, um einen guten Überblick über die Verwendung zu erhalten

https://automatetheboringstuff.com/chapter12/