Cum se lucrează cu documentele Excel utilizând Python

Cred că ați folosit Microsoft Excel cu o anumită ocazie. Este foarte puternic atunci când vine vorba de a lucra cu foi de calcul, tabele, diagrame etc. Dar ce are de-a face Python cu asta? 

Python este un schimbător de jocuri când vine vorba de fișiere Excel, deoarece poate automatiza lucruri descurajante pe care le-ați putea întâlni în unele sarcini legate de Excel. De exemplu, vi se poate solicita să căutați câteva informații în sute de foi de calcul din bugetele companiei. Foarte descurajantă, nu-i așa? În acest tutorial, vă voi arăta cum Python poate fi folosit cu ușurință pentru a lucra cu documentele Excel.

Oh, nu-ți face griji dacă nu ai instalat Microsoft Excel pe mașină. Puteți utiliza alte alternative pentru a merge prin acest tutorial, cum ar fi LibreOffice Calc și OpenOffice Calc.

Deci sa începem!

OpenPyXL

OpenPyXL este o bibliotecă folosită pentru citirea și scrierea Excel 2010 xlsx / xlsm / xltx / XLTM fișiere. Aceasta este biblioteca pe care o vom folosi în acest tutorial pentru a lucra cu documentele Excel.

Primul lucru pe care trebuie să-l facem pentru a face uz de această bibliotecă este instalarea OpenPyXL.

Instalarea OpenPyXL

Pentru a instala OpenPyXL, vom folosi pip, care este (bazat pe Wikipedia):

Un sistem de gestionare a pachetelor utilizat pentru instalarea și gestionarea pachetelor software scrise în Python. Multe pachete pot fi găsite în Python Package Index (PyPI).

Puteți urma pașii menționați în Ghidul utilizatorului pentru ambalarea Python pentru instalare țâfnă, dar dacă aveți Python 2.7.9 și mai mare, sau Python 3.4 și mai sus, deja aveți țâfnă!

OpenPyXL acum poate fi instalat pur și simplu tastând următoarea comandă (în terminalul Mac OS X):

pip instala openpyxl

Deschiderea unui document Excel

După instalare OpenPyXL, suntem gata să începem să lucrăm cu documente Excel. Prima sarcină obișnuită pe care o vom efectua pe un document Excel este deschis acest document. Mergeți mai departe și descărcați fișierul Excel sample.xlsx pentru a urmări împreună cu tutorialul sau puteți utiliza oricare fișier Excel care vă place. 

Înainte de a putea folosi OpenPyXL, avem nevoie să import aceasta, după cum urmează:

importați openpyxl

Metoda de care avem nevoie pentru a deschide documentul Excel este load_workbook (). Dacă vă întrebați ce se înțelege printr-un registru de lucru, acesta este pur și simplu documentul de calcul tabelar Excel. Scriptul pe care trebuie să-l deschidem pentru un document Excel este după cum urmează:

import openpyxl excel_document = openpyxl.load_workbook ('sample.xlsx')

Să vedem acum tip returnat de la load_workbook () metodă. Acest lucru se poate face după cum urmează:

tip de tipărire (excel_document)

Aceasta va returna următoarele:

 

După cum vedem, obiectul a revenit Workbook, de tip de date registru de lucru. Workbook Obiect aici reprezintă fișierul Excel.

Nume de foi

Tabelele din Excel constau din coloane (cu litere începând de la A, B, C etc.) și rânduri (începând de la 1, 2, 3 etc.). Pentru a verifica ce foi avem în documentul nostru Excel, folosim get_sheet_names () după cum urmează:

excel_document.get_sheet_names ()

Dacă noi imprimare comanda de mai sus, primim urmatoarele:

[U'Sheet1' ]

Arătând astfel că avem o singură coală, numită Foaia1.

Dacă aveți mai multe coli, puteți accesa o anumită foaie după numele acesteia utilizând următoarea metodă: get_sheet_by_name ().

Accesarea celulelor

Acum, că am învățat cum să deschidem un fișier Excel și să luăm foaia, să vedem cât de ușor este să accesezi o celulă din acea foaie. Tot ce trebuie să faceți este să preluați foaia respectivă și apoi să determinați locația (coordonata) a celulei. Să spunem că vrem să accesăm coloana A rând 2 în documentul Excel pe care îl avem A2. Acest lucru poate fi implementat după cum urmează:

foaie = excel_document.get_sheet_by_name ('Sheet1') foaie de imprimare ['A2'] valoare

În acest caz, veți primi următoarea valoare: Abder.

Putem folosi, de asemenea, o notație de rând-rând. De exemplu, dacă vrem să accesăm celula la rând 5 și coloană 2, introducem următoarele:

sheet.cell (rând = 5, coloană = 2) .value

Rezultatul în acest caz va fi: programator.

Dacă vrem să vedem tipul de obiect reprezentând celula, putem scrie:

tipul de tipărire (foaia ['A2'])

sau:

tipăriți foaia.cel (rând = 5, coloana = 2)

În acest caz, veți obține următoarea ieșire:


ceea ce înseamnă că obiectul este de tip celulă.

Accesarea unei game de celule

Ce ar fi dacă ați fi interesat să accesați mai degrabă o gamă de celule decât o singură celulă? Să spunem că vrem să accesăm celulele A1 la B3, care arată astfel în documentul nostru Excel?

Acest lucru se poate face folosind următorul script:

multiple_cells = foaie ['A1': 'B3'] pentru rând în multiple_cells: pentru celula în rând: print cell.value

În acest caz, veți obține următoarea ieșire:

Nume Profesie Abder Student Bob Engineer

Accesarea tuturor rândurilor și coloanelor

OpenPyXL vă permite să accesați toate rândurile și coloanele din documentul dvs. Excel, utilizând rânduri () și coloane () metode, respectiv.

Pentru a accesa toate rândurile, putem face următoarele:

all_rows = sheet.rows print all_rows [:]

Observați că am folosit [:] notație pentru a accesa toate rânduri. Acest lucru se datorează faptului că tipul de obiect returnat de la întregul document este a tuplu.

Rezultatul scenariului de mai sus ar fi următorul:

((, ), (, ), (, ), (, ), (, ), (, ), (, ))

Pe de altă parte, dacă vrem să accesăm toate coloane, facem pur și simplu următoarele:

all_columns = coli coloane print all_columns [:]

În acest caz, veți obține următoarele rezultate:

((, , , , , , ), (, , , , , , ))

Există, desigur, mai multe lucruri pe care le puteți face cu documentele Excel, după cum puteți vedea în documentația OpenPyXL. 

Concluzie

Din acest tutorial, am observat cât de flexibilă poate fi lucrul cu documentele Excel folosind Python. Amintiți-vă scenariul menționat la începutul tutorialului? Merită să încercați ca un proiect!

Aflați Python

Aflați Python cu ghidul nostru complet de instrucțiuni Python, indiferent dacă sunteți doar începători sau sunteți un coder experimentat în căutarea unor noi abilități.

Cod