Was ist der beste Weg ist, Excel (XLS) Dateien mit Python (nicht CSV-Dateien) zu lesen.Lese/Parsen von Excel (xls) Dateien mit Python
Gibt es ein eingebautes in Paket, das standardmäßig in Python unterstützt wird, diese Aufgabe zu tun?
Was ist der beste Weg ist, Excel (XLS) Dateien mit Python (nicht CSV-Dateien) zu lesen.Lese/Parsen von Excel (xls) Dateien mit Python
Gibt es ein eingebautes in Paket, das standardmäßig in Python unterstützt wird, diese Aufgabe zu tun?
Sie eine der Bibliotheken verwenden können listed here (wie Pyxlreader, die auf JExcelAPI basiert, oder xlwt) sowie COM automation to use Excel itself für das Lesen der Dateien, sondern auch für das Office als Abhängigkeit Ihrer Software einführen, die möglicherweise nicht immer eine Option sein.
(1) Pyxlreader ist die absolute Pox. Du darfst es nie versucht haben. Siehe meine Kommentare hier: http://stackoverflow.com/questions/1243545/programmatisch-extract-data-from-an-excel-spreadsheet (2) 'xlwt' WriTes Dateien; Verwenden Sie 'xlrd' für ReaD-Dateien. –
Ich empfehle xlrd sehr .xls
Dateien zum Lesen.
voyager erwähnt die Verwendung von COM-Automatisierung. Nachdem ich das vor ein paar Jahren selbst gemacht habe, sei gewarnt, dass dies eine echte PITA ist. Die Anzahl der Vorbehalte ist groß und die Dokumentation fehlt und ist ärgerlich. Ich stieß auf viele seltsame Bugs und Gotchas, von denen einige viele Stunden brauchten, um es herauszufinden.
UPDATE: Für neuere .xlsx
Dateien scheint die empfohlene Bibliothek zum Lesen und Schreiben openpyxl zu sein.
Für Excel 2007+ Dateien ('.xlsx') würden Sie wahrscheinlich [OpenPyXL] (http://openpyxl.readthedocs.org/) verwenden. –
Sie auch die (nicht-Python) Programm xls2csv laufen betrachten könnten. Feed es eine XLS-Datei, und Sie sollten eine CSV zurück.
Aber das Poster sagt, dass er in Python lesen muss ... Schlägst du vor, 'xls2csv' zu laufen, dann die' csv' aus Python zu analysieren? – Hbcdev
Python-Excelerator enthält einen ausführbaren py_xls2csv-Wrapper um einen Python-Konverter. –
Für ältere Excel-Dateien gibt es die OleFileIO_PL module, die das OLE-strukturierte Speicherformat verwendet lesen kann.
Python Excelerator übernimmt auch diese Aufgabe. http://ghantoos.org/2007/10/25/python-pyexcelerator-small-howto/
Es ist auch in Debian und Ubuntu verfügbar:
sudo apt-get install python-excelerator
Python xlrd Bibliothek kann eine bessere Lösung für dieses Problem
import xlrd
eine Arbeitsmappe
workbook = xlrd.open_workbook('your_file_name.xlsx')
offenes Blatt zu öffnen, indem Name
worksheet = workbook.sheet_by_name('Name of the Sheet')
offene Blatt durch den Index
worksheet = workbook.sheet_by_index(0)
lesen Zellenwert
worksheet.cell(0, 0).value
Mit Pandas:
import pandas as pd
xls = pd.ExcelFile("yourfilename.xls")
sheetX = xls.parse(2) #2 is the sheet number
var1 = sheetX['ColumnName']
print(var1[1]) #1 is the row number...
möglich Duplikat [die Bibliothek sollte ich verwenden, um eine XLS von Linux zu schreiben/Python?] (Http://stackoverflow.com/questions/245225/which-library-should-i-use-to-write-an-xls-from-linux-pyt hon) – voyager
@voyager: Er will Dateien lesen nicht schreiben –