parsarea documentelor Excel cu python [închis] (Programare, Python, Excel, Parsing)

tomermes a intrebat.

Vreau să parsez documentul excel în liste în Python. există o bibliotecă python care este utilă pentru această acțiune?Și ce funcții sunt relevante în acea bibliotecă?

Comentarii

  • se poate exporta fișierul Excel ca csv? –  > Por Facundo Casco.
  • possible duplicate of Cum pot deschide un fișier Excel în Python? –  > Por orlp.
6 răspunsuri
Mark Gemmill

Cel mai bun pariu pentru analizarea fișierelor Excel ar fi xlrd bibliotecă. python-excel.org are linkuri și exemple pentru xlrd și biblioteci python excel conexe, inclusiv un fișier document pdf care conține câteva exemple bune de utilizare a xlrd. Bineînțeles, există și o mulțime de întrebări legate de xlrd pe StackOverflow care ar putea fi utile.

Un avertisment cu privire la biblioteca xlrd este că aceasta va funcționa numai cu xls (Excel 2003 și versiunile anterioare ale Excel) și nu cu cele mai recente formate de fișiere xlsx mai recente. Există o bibliotecă mai nouă openpyxl pentru a lucra cu xlsx, , dar eu nu am folosit-o niciodată.

UPDATE:În conformitate cu comentariul lui John, biblioteca xlrd suportă acum atât xls și xlsx formate de fișiere.

Sper că vă ajută.

Comentarii

  • Se știe că @John Machin, mentorul principal al xlrd, frecventează frecvent SO. –  > Por PTBNL.
  • Întrebare legată de xlsx stackoverflow.com/questions/4371163/… –  > Por dgorissen.
  • xlrd citește acum atât fișiere .xlsx, cât și .xls. –  > Por John Y.
  • xlrd nu mai acceptă xlsx. Ultima versiune care acceptă xlsx este 1.0.2 –  > Por L. P..
wordsforthewise

Site-ul biblioteca pandas are o modalitate rapidă și ușoară de a citi Excel. Dacă sunt în mare parte doar date și nimic prea complicat, va funcționa:

import pandas as pd
ex_data = pd.read_excel('excel_file.xlsx')

Le citește într-un fișier pandas DataFrame, , care este utilă pentru colectarea datelor etc.

Pentru a merge la o listă:

ex_data['column1_name'].values.tolist()

Dacă aveți mai multe tabele și mai multe lucruri în fiecare foaie de lucru, atunci poate doriți să utilizați o altă bibliotecă, cum ar fi xlrd sau openpyxl.

Ryu_hayabusa

openpyxl este o bibliotecă grozavă și suportă citirea/scrierea în fișiere xlsx din 2010.

Exemplu de cod de analiză

from openpyxl import load_workbook
wb = load_workbook('Book1.xlsx')
ws = wb.active
for row in ws.iter_rows():
   for cell in row:
     print cell.value

Exemplu de cod de scriere

from openpyxl import Workbook
from openpyxl.utils import get_column_letter

wb = Workbook()

dest_filename = 'empty_book.xlsx'

ws1 = wb.active
ws1.title = "range names"

for row in range(1, 40):
    ws1.append(range(600))
wb.save(filename = dest_filename)

puteți citi mai multe aici: https://openpyxl.readthedocs.io/en/stable/index.html

Comentarii

  • Și este biblioteca recomandată pe python-excel.org –  > Por FelixEnescu.
  • mulțumesc pentru exemplul de cod, documentația lipsește. –  > Por pastephens.
  • Sunt un dezvoltator care doar cercetează tehnici de parsing. Acest lucru este excelent – -.  > Por Jason V.
James Atwood

xlrd este grozav pentru sarcini simple, dar dacă trebuie să lucrați cu oricare dintre funcționalitățile mai profunde ale Excel (macro-uri, grafice avansate etc.) și lucrați pe o mașină Windows, puteți utiliza biblioteca pywin32 pentru a controla stratul win32com. Aceasta oferă acces la aproape tot ceea ce poate fi controlat prin intermediul macrourilor / Visual Basic.

Comentarii

  • linkul este mort acum –  > Por kmonsoor.
Vader

Dacă doriți să analizați xlsx încercați python-xlsx

Adam Lewis

pyExcelerator se pare că nu mai este întreținut, dar eu îl folosesc de ceva timp și a ajuns să îmi placă foarte mult.

Puncte cheie:

  • Independent de platformă
  • Nu necesită ca Excel să fie instalat (ceea ce înseamnă că nu utilizează comunicații COM)

Actualizare

Toate proiectele mele noi s-au mutat la xlrd.

Comentarii

  • Acesta este mai rău din toate punctele de vedere decât cel mai nou xlrd. –  > Por John Y.
  • @JohnY Trebuie să fiu de acord cu tine în acest moment. Acest lucru a funcționat totuși la momentul respectiv. –  > Por Adam Lewis.