Hvordan jobbe med Excel-dokumenter ved hjelp av Python

Jeg tror du har brukt Microsoft Excel ved en anledning. Det er veldig kraftig når det gjelder å jobbe med regneark, tabeller, diagrammer etc. Men hva har Python å gjøre med det? 

Python er en spillveksler når det gjelder Excel-filer fordi den kan automatisere skremmende ting du kan støte på i noen Excel-relaterte oppgaver. For eksempel kan det hende du må være på utkikk etter informasjon i hundrevis av regneark i selskapets budsjetter. Veldig skremmende, er det ikke? I denne veiledningen vil jeg vise deg hvordan Python kan brukes lett til å jobbe med Excel-dokumenter.

Åh, ikke bekymre deg hvis du ikke har Microsoft Excel installert på maskinen din. Du kan bruke andre alternativer til å gå gjennom denne opplæringen, for eksempel LibreOffice Calc og OpenOffice Calc.

Så, la oss komme i gang!

OpenPyXL

OpenPyXL er et bibliotek som brukes til å lese og skrive Excel 2010 xlsx / xlsm / xltx / xltm filer. Dette er biblioteket vi skal bruke i denne veiledningen for å jobbe med Excel-dokumenter.

Det første vi må gjøre for å kunne benytte dette biblioteket er installasjon OpenPyXL.

Installere OpenPyXL

For å installere OpenPyXL, vi skal bruke pip, som er (basert på Wikipedia):

Et pakkehåndteringssystem som brukes til å installere og administrere programvarepakker skrevet i Python. Mange pakker finnes i Python Package Index (PyPI).

Du kan følge trinnene som er nevnt i Python Packaging User Guide for installasjon pip, men hvis du har det Python 2.7.9 og høyere, eller Python 3.4 og høyere, har du allerede pip!

OpenPyXL Nå kan du enkelt installere ved å skrive følgende kommando (i Mac OS Xs terminal):

pip installere openpyxl

Å åpne et Excel-dokument

Etter installasjon OpenPyXL, Vi er klare til å begynne å jobbe med Excel-dokumenter. Den første vanlige oppgaven vi skulle utføre på et Excel-dokument er å åpen det dokumentet. Gå videre og last ned Excel-filen sample.xlsx for å følge med opplæringen, eller du kan bruke hvilken Excel-fil du liker. 

Før vi kan bruke OpenPyXL, vi må importere det, som følger:

importere openpyxl

Metoden vi trenger for å åpne Excel-dokumentet er load_workbook (). Hvis du lurer på hva som menes med en arbeidsbok, er det bare Excel-regnearkdokumentet. Skriptet som vi dermed trenger for å åpne et Excel-dokument, er som følger:

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

La oss nå se type returnert fra load_workbook () metode. Dette kan gjøres på følgende måte:

utskriftstype (excel_document)

Dette vil returnere følgende:

 

Som vi kan se, er gjenstanden returnert arbeidsbok, av datatype arbeidsbok. De arbeidsbok objekt her representerer Excel-filen.

Arknavn

Ark i Excel består av kolonner (med bokstaver som starter fra A, B, C, etc.) og rader (fra 1, 2, 3, etc.). For å sjekke hvilke ark vi har i vårt Excel-dokument, bruker vi get_sheet_names () metode som følger:

excel_document.get_sheet_names ()

Hvis vi skrive ut Kommandoen ovenfor får vi følgende:

[U'Sheet1' ]

Dermed viser vi at vi har ett ark, kalt Sheet1.

Hvis du har flere ark, kan du få tilgang til et bestemt ark ved navn med denne metoden: get_sheet_by_name ().

Å få tilgang til celler

Nå som vi har lært å åpne en Excel-fil og få arket, la oss se hvor lett det er å få tilgang til en celle i det aktuelle arket. Alt du trenger å gjøre er å hente arket, og deretter bestemme plasseringen (koordinaten) til cellen. La oss si at vi ønsker å få tilgang til kolonnen EN rad 2 i Excel-dokumentet vi har, det er A2. Dette kan implementeres som følger:

ark = excel_document.get_sheet_by_name ('Sheet1') utskriftsark ['A2']. verdi

I dette tilfellet vil du få følgende verdi returnert: Abder.

Vi kan også bruke en rad-kolonne notasjon. For eksempel, hvis vi ønsker å få tilgang til cellen i rad 5 og kolonne 2, vi skriver inn følgende:

sheet.cell (rad = 5, kolonne = 2) .value

Utgangen i dette tilfellet vil være: Programmerer.

Hvis vi vil se objekttype som representerer cellen, kan vi skrive:

utskriftstype (ark ['A2'])

eller:

skriv ut ark.cell (rad = 5, kolonne = 2)

I dette tilfellet vil du få følgende utdata:


noe som betyr at objektet er av typen Celle.

Få tilgang til et utvalg av celler

Hva om du var interessert i å få tilgang til en rekke celler i stedet for bare en celle? La oss si at vi vil ha tilgang til cellene fra A1 til B3, som ser slik ut i vårt Excel-dokument?

Dette kan gjøres ved å bruke følgende skript:

multiple_cells = sheet ['A1': 'B3'] for rad i multiple_cells: for cellen i rad: skriv ut cellevalue

I dette tilfellet får du følgende utgang:

Navn Yrke Abder Student Bob Engineer

Tilgang til alle rader og kolonner

OpenPyXL lar deg få tilgang til alle rader og kolonner i Excel-dokumentet ditt, ved hjelp av rader () og kolonner () metoder, henholdsvis.

For å få tilgang til alle rader, kan vi gjøre følgende:

all_rows = sheet.rows skriv ut all_rows [:]

Legg merke til at vi brukte [:] notat for å få tilgang til alle rader. Dette skyldes at den returnerte objekttypen fra whole_document er en tuppel.

Utgangen av det ovennevnte skriptet ville være som følger:

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

På den annen side, hvis vi ønsker å få tilgang til alle kolonner, vi gjør bare følgende:

all_columns = sheet.columns print all_columns [:]

I så fall får du følgende utgang:

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

Det er selvfølgelig mer som du kan gjøre med Excel-dokumenter, som du kan se i OpenPyXL-dokumentasjonen. 

Konklusjon

Fra denne opplæringen har vi lagt merke til hvor fleksibel det kan være å jobbe med Excel-dokumenter ved hjelp av Python. Husk scenariet nevnt i begynnelsen av opplæringen? Verdt å prøve som et prosjekt!

Lær python

Lær Python med vår komplette pythonveiledning, enten du er bare i gang eller du er en erfaren coder som ønsker å lære nye ferdigheter..