Werken met Excel-documenten met Python

Ik geloof dat je bij een bepaalde gelegenheid Microsoft Excel hebt gebruikt. Het is erg krachtig als het gaat om het werken met spreadsheets, tabellen, grafieken, enz. Maar wat heeft Python ermee te maken? 

Python is een game-wisselaar als het gaat om Excel-bestanden, omdat het angstaanjagend spul kan automatiseren dat je misschien tegenkomt in een Excel-gerelateerde taak. U moet bijvoorbeeld mogelijk op zoek gaan naar informatie in honderden spreadsheets van de budgetten van het bedrijf. Erg moeilijk, toch? In deze zelfstudie laat ik u zien hoe Python eenvoudig kan worden gebruikt om met Excel-documenten te werken.

Maak je geen zorgen als je Microsoft Excel niet op je computer hebt geïnstalleerd. U kunt andere alternatieven gebruiken om door deze zelfstudie te lopen, zoals LibreOffice Calc en OpenOffice Calc.

Dus laten we beginnen!

OpenPyXL

OpenPyXL is een bibliotheek die wordt gebruikt om Excel 2010 te lezen en te schrijven xlsx / xlsm / xltx / XLTM bestanden. Dit is de bibliotheek die we in deze zelfstudie zullen gebruiken om met Excel-documenten te werken.

Het eerste dat we moeten doen om gebruik te maken van deze bibliotheek is installeren OpenPyXL.

Installeren van OpenPyXL

Om te installeren OpenPyXL, we zullen pip gebruiken, dat is (op basis van Wikipedia):

Een pakketbeheersysteem dat wordt gebruikt voor het installeren en beheren van softwarepakketten die zijn geschreven in Python. Veel pakketten zijn te vinden in de Python Package Index (PyPI).

U kunt de stappen beschreven in de Python Packaging User Guide volgen voor installatie Pip, maar als je dat hebt gedaan Python 2.7.9 en hoger, of Python 3.4 en hoger, heb je al Pip!

OpenPyXL nu kan eenvoudig worden geïnstalleerd door het volgende commando te typen (in Mac OS X's Terminal):

pip installeer openpyxl

Een Excel-document openen

Na installatie OpenPyXL, we zijn klaar om te gaan werken met Excel-documenten. De eerste normale taak die we zouden uitvoeren op een Excel-document is om Open dat document. Ga je gang en download het Excel-bestand sample.xlsx om samen met de tutorial te volgen, of je kunt het Excel-bestand dat je leuk vindt gebruiken. 

Voordat we kunnen gebruiken OpenPyXL, we moeten importeren het, als volgt:

import openpyxl

De methode die we nodig hebben om het Excel-document te openen is load_workbook (). Als u zich afvraagt ​​wat wordt bedoeld met een werkmap, is dit eenvoudigweg het Excel-werkbladdocument. Het script dat we dus nodig hebben om een ​​Excel-document te openen is als volgt:

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

Laten we nu het type teruggekeerd van de load_workbook () methode. Dit kan als volgt worden gedaan:

print type (excel_document)

Hiermee wordt het volgende geretourneerd:

 

Zoals we kunnen zien, is het geretourneerde object Werkboek, van gegevenstype werkboek. De Werkboek object hier vertegenwoordigt het Excel-bestand.

Bladnamen

Bladen in Excel bestaan ​​uit kolommen (met letters beginnend bij A, B, C, etc.) en rijen (beginnend bij 1, 2, 3, etc.). Om te controleren welke bladen we in ons Excel-document hebben, gebruiken we de get_sheet_names () methode als volgt:

excel_document.get_sheet_names ()

Als wij afdrukken het bovenstaande commando krijgen we het volgende:

[U'Sheet1' ]

Zo laten we zien dat we één blad hebben, genaamd Sheet1.

Als u meerdere bladen heeft, kunt u met behulp van deze methode toegang krijgen tot een specifiek blad op naam: get_sheet_by_name ().

Toegang tot cellen

Nu we hebben geleerd hoe een Excel-bestand te openen en het blad te krijgen, laten we zien hoe gemakkelijk het is om toegang te krijgen tot een cel in dat blad. Het enige wat u hoeft te doen is dat blad op te halen en vervolgens de locatie (coördinaat) van de cel te bepalen. Laten we zeggen dat we toegang willen tot de kolom EEN rij 2 in het Excel-document dat we hebben, dat is A2. Dit kan als volgt worden geïmplementeerd:

sheet = excel_document.get_sheet_by_name ('Sheet1') print sheet ['A2']. waarde

In dit geval krijgt u de volgende waarde geretourneerd: abder.

We kunnen ook een rij-kolomnotatie gebruiken. Bijvoorbeeld als we de cel op rij willen openen 5 en kolom 2, we typen het volgende:

sheet.cell (rij = 5, kolom = 2) .waarde

De uitvoer is in dit geval: programmeur.

Als we het objecttype willen zien dat de cel voorstelt, kunnen we typen:

afdruktype (blad ['A2'])

of:

print sheet.cell (rij = 5, kolom = 2)

In dit geval krijgt u de volgende uitvoer:


wat betekent dat het object van het type is Cel.

Toegang tot een bereik van cellen

Wat als u geïnteresseerd was in toegang tot een cellenbereik in plaats van slechts één cel? Laten we zeggen dat we toegang willen tot de cellen van A1 naar B3, die er zo uitzien in ons Excel-document?

Dit kan worden gedaan met behulp van het volgende script:

multiple_cells = blad ['A1': 'B3'] voor rij in multiple_cells: voor cel in rij: print cell.value

In dit geval krijgt u de volgende uitvoer:

Naam Beroep Abder Student Bob Engineer

Toegang tot alle rijen en kolommen

OpenPyXL geeft u toegang tot alle rijen en kolommen in uw Excel-document, met behulp van de rijen () en kolommen () methoden.

Om toegang te krijgen tot alle rijen, kunnen we het volgende doen:

all_rows = sheet.rows print all_rows [:]

Merk op dat we de [:] notatie voor toegang tot alle rijen. Dit komt omdat het geretourneerde objecttype uit gehele document is een tuple.

De uitvoer van het bovenstaande script zou als volgt zijn:

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

Aan de andere kant, als we toegang willen tot alle kolommen, we doen gewoon het volgende:

all_columns = sheet.columns print all_columns [:]

In dat geval krijgt u de volgende uitvoer:

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

Er is natuurlijk meer dat u kunt doen met Excel-documenten, zoals u kunt zien in de OpenPyXL-documentatie. 

Conclusie

Uit deze zelfstudie hebben we gemerkt hoe flexibel het kan zijn om met Excel-documenten te werken met Python. Denk aan het scenario dat aan het begin van de tutorial wordt genoemd? Het proberen waard als een project!

Leer Python

Leer Python met onze complete python-handleiding, of je nu net begint of dat je een ervaren coder bent die op zoek is naar nieuwe vaardigheden.