Manipulering av Excel -regneark ved hjelp av Python

Manipulering av Excel -regneark ved hjelp av Python

Microsoft Excel er en regnearkprogramvare som brukes til å lagre og administrere tabelldata. Videre, med Excel, kan beregninger utføres ved å bruke formler på dataene, og datavisualiseringer kan produseres.Mange oppgaver utført i regneark, for eksempel matematiske operasjoner, kan automatiseres via programmering, og mange programmeringsspråk har moduler for å manipulere Excel -regneark. I denne opplæringen vil vi vise deg hvordan du bruker Pythons OpenPyxl -modul for å lese og endre Excel -regneark.

Installere OpenPyxl

Før du kan installere OpenPyxl, må du installere Pip. Pip brukes til å installere Python -pakker. Kjør følgende kommando i ledeteksten for å se om PIP er installert.

C: \ Brukere \ Windows> Pip Hjelp

Hvis Hjelpinnholdet i PIP returneres, installeres PIP; Ellers, gå til følgende lenke og last ned Get-Pip.PY -fil:

https: // bootstrap.Pypa.io/get-pip.py

Kjør nå følgende kommando for å installere PIP:

C: \ Brukere \ Windows> Python Get-Pip.py

Etter å ha installert PIP, kan følgende kommando brukes til å installere OpenPyxl.

C: \ Brukere \ Windows> Pip Installer OpenPyxl

Opprette et Excel -dokument

I denne delen vil vi bruke OpenPyxl -modulen for å lage et Excel -dokument. Først åpner du ledeteksten ved å skrive 'CMD' i søkefeltet; Deretter går du inn

C: \ Brukere \ Windows> Python

For å lage en Excel -arbeidsbok, importerer vi OpenPyxL -modulen og bruker deretter 'Workbook ()' -metoden for å lage en arbeidsbok.

>>> # Importere OpenPyxl -modulen
>>> Importer OpenPyxl
>>> # initialisere en arbeidsbok
>>> work_book = openpyxl.Workbook ()
>>> # Lagre arbeidsbok som 'Eksempel.xlsx '
>>> work_book.Lagre ('Eksempel.XLSX ')

Ovennevnte kommandoer oppretter et Excel -dokument som heter eksempel.XLSX. Deretter vil vi manipulere dette Excel -dokumentet.

Manipulering av ark i et Excel -dokument

Vi har laget et Excel -dokument kalt eksempel.XLSX. Nå vil vi manipulere arkene i dette dokumentet ved hjelp av Python. OpenPyxl -modulen har en 'create_sheet ()' -metode som kan brukes til å lage et nytt ark. Denne metoden tar to argumenter: indeks og tittel. Indeks definerer plasseringen av arket ved hjelp av et hvilket som helst ikke-negativt heltall (inkludert 0), og tittelen er tittelen på arket. En liste over alle arkene i Work_book -objektet kan vises ved å ringe listen til listenavn.

>>> # Importere OpenPyxl
>>> Importer OpenPyxl
>>> # Last inn eksisterende Excel -dokument inn i Work_Book -objektet
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Opprette et nytt ark på 0. indeks
>>> work_book.create_sheet (indeks = 0, title = 'første ark')

>>> # Få alle arkene
>>> work_book.arknavn
['Første ark', 'ark']
>>> # Lagre Excel -dokument
>>> work_book.Lagre ('Eksempel.XLSX ')

I koden ovenfor opprettet vi et ark som heter First Sheet og plasserte det på 0th Index. Arket som tidligere ble lokalisert ved 0th -indeksen ble flyttet til 1. indeks, som vist i utgangen. Nå skal vi endre navnet på det originale arket fra arket til andre ark.

Tittelattributtet har navnet på arket. For å gi nytt navn til et ark, må vi først navigere til det arket som følger.

>>> # Få aktivt ark fra Excel -dokument
>>> ark = work_book.aktiv
>>> # utskriftsark
>>> Skriv ut (ark.tittel)
Første ark >>> # Navigering til andre ark (ved indeks 1)
>>> work_book.aktiv = 1
>>> # Få aktivt ark
>>> ark = work_book.aktiv
>>> # utskriftsark
>>> Skriv ut (ark.tittel)
Ark >>> # Endre arktittel
>>> ark.tittel = 'andre ark'
>>> # utskriftsark tittel
>>> Skriv ut (ark.tittel)
Andre ark

Tilsvarende kan vi fjerne et ark fra Excel -dokumentet. OpenPyxL -modulen tilbyr fjerne () -metoden for å fjerne et ark. Denne metoden tar navnet på arket som skal fjernes som et argument og fjerner deretter arket. Vi kan fjerne andre ark som følger:

>>> # Fjern et ark med navn
>>> work_book.Fjern (Work_book ['Second Sheet'])
>>> # Få alle arkene
>>> work_book.arknavn
['Første ark']
>>> # Lagre Excel -dokument
>>> work_book.Lagre ('Eksempel.XLSX ')

Legge til data til celler

Så langt har vi vist deg hvordan du oppretter eller sletter ark i et Excel -dokument. Nå skal vi legge til data til cellene fra forskjellige ark. I dette eksemplet har vi et enkelt ark som heter First Sheet i vårt dokument, og vi ønsker å lage to ark til.

>>> # Importere OpenPyxl
>>> Importer OpenPyxl
>>> # Last inn arbeidsbok
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Opprette et nytt ark på 1. indeks
>>> work_book.create_sheet (indeks = 1, title = 'andre ark')

>>> # Opprette et nytt ark på 2. indeks
>>> work_book.create_sheet (indeks = 2, title = 'tredje ark')

>>> # Få alle arkene
>>> work_book.arknavn
['Første ark', 'Second Sheet', 'Tredje ark']

Nå har vi tre ark, og vi vil legge til data i cellene i disse arkene.

>>> # Få første ark
>>> Sheet_1 = work_book ['første ark']
>>> # Legge til data til 'A1' celle av første ark
>>> Sheet_1 ['A1'] = 'Navn'
>>> # Få andre ark
>>> Sheet_2 = work_book ['andre ark']
>>> # Legge til data til 'A1' celle av andre ark
>>> Sheet_2 ['A1'] = 'Id'
>>> # Få tredje ark
>>> Sheet_3 = work_book ['tredje ark']
>>> # Legge til data til 'A1' celle av tredje ark
>>> Sheet_3 ['A1'] = 'Karakterer'
>>> # Lagre Excel Workbook
>>> work_book.Lagre ('Eksempel.XLSX ')

Lese Excel -ark

OpenPyxl -modulen bruker verdien til en celle for å lagre dataene til den cellen. Vi kan lese dataene i en celle ved å kalle verdien til cellen. Nå har vi tre ark, og hvert ark inneholder noen data. Vi kan lese dataene ved å bruke følgende funksjoner i OpenPyxl:

>>> # Importere OpenPyxl
>>> Importer OpenPyxl
>>> # Last inn arbeidsbok
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Få første ark
>>> Sheet_1 = work_book ['første ark']
>>> # Få andre ark
>>> Sheet_2 = work_book ['andre ark']
>>> # Få tredje ark
>>> Sheet_3 = work_book ['tredje ark']
>>> # Skrive ut data fra 'A1' celle av første ark
>>> skriv ut (Sheet_1 ['A1'].verdi)
Navn
>>> # Skrive ut data fra 'A1' celle av andre ark
>>> skriv ut (Sheet_2 ['A1'].verdi)
Id
>>> # Skrive ut data fra 'A1' celle av tredje ark
>>> skriv ut (Sheet_3 ['A1'].verdi)
Karakterer

Endre skrifter og farger

Deretter skal vi vise deg hvordan du endrer skrifttypen til en celle ved å bruke Font () -funksjonen. Importer først OpenPyxl.stilobjekt. Font () -metoden tar en liste over argumenter, inkludert:

  • Navn (streng): navnet på skriften
  • størrelse (int eller float): Størrelsen på skriften
  • understrek (streng): understreketypen
  • farge (streng): den heksadesimale fargen på teksten
  • kursiv (bool): om skriften er kursiv
  • fet (bool): Enten skriften er fet skrift

For å bruke stiler, må vi først opprette et objekt ved å sende alle parametrene til Font () -metoden. Deretter velger vi arket, og inne i arket velger vi cellen som vi ønsker å bruke stilen. Deretter bruker vi stil på den valgte cellen.

>>> # Importere OpenPyxl
>>> Importer OpenPyxl
>>> # Importer fontmetode fra OpenPyxl.stiler
>>> Fra OpenPyxl.stiler importerer font
>>> # Last inn arbeidsbok
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Opprette stilobjekt
>>> style = font (name = 'consolas', størrelse = 13, fet = true,
... kursiv = falsk)
>>> # Velge ark fra arbeidsbok
>>> Sheet_1 = work_book ['første ark']
>>> # Velge cellen vi vil legge til stiler
>>> a1 = ark_1 ['A1']
>>> # Bruk stiler på cellen
>>> A1.font = stil
>>> # Lagre arbeidsbok
>>> work_book.Lagre ('Eksempel.XLSX ')

Påføring av grenser på celler

Vi kan bruke grenser på cellene i et Excel -ark ved bruk av grensen () og side () metoder for openpyxl.stiler.Borders -modul. Vi kan passere forskjellige funksjoner som parametere til grensen () -metoden. Følgende er noen av funksjonene som sendes som parametere til grensen () for å definere dimensjonene til grensen.

  • venstre: Bruk en kant på venstre side av en celle
  • Ikke sant: Bruk en kant på høyre side av en celle
  • topp: Bruk en kant på toppen av en celle
  • bunn: Bruk en kant på bunnen av en celle

Disse funksjonene tar stilattributter som parametere. Stilattributtet definerer grensenes stil (e.g., solid, stiplet). Stilparametere kan ha en av følgende verdier.

  • dobbelt: en dobbeltlinjegrense
  • Strikket: en stiplet grense
  • tynn: en tynn kant
  • medium: en middels kant
  • Mediumdashdot: en stiplet og stiplet kant av middels vekt
  • tykk: en tykk grense
  • Dashdot: en stiplet og stiplet grense
  • hår: en veldig tynn kant
  • prikket: en stiplet grense

Nå vil vi bruke forskjellige typer grenser på forskjellige celler i regnearkene våre. Først velger vi celler, og deretter definerer vi grensestiler og bruker disse stilene på forskjellige celler.

>>> # Importere OpenPyxl
>>> Importer OpenPyxl
>>> # Importere grense- og sideklasser
>>> Fra OpenPyxl.stiler.grenser importerer grensen, side
>>> # Last inn arbeidsbok
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Velge ark
>>> Sheet_1 = work_book ['første ark']
>>> # Velge forskjellige celler fra ark
>>> cell_1 = ark_1 ['A1']
>>> cell_2 = ark_1 ['B2']
>>> cell_3 = ark_1 ['C3']
>>> # Definere forskjellige grensestiler
>>> style_1 = kant (nederst = side (style = 'dotted'))
>>> style_2 = kant (høyre = side (style = 'tynn'))
>>> style_3 = kant (topp = side (style = 'dashdot'))
>>> # Bruk grensestiler på cellene
>>> cell_1.Border = Style_1
>>> cell_2.Border = Style_2
>>> cell_3.Border = Style_3
>>> # Lagre arbeidsbok
>>> work_book.Lagre ('Eksempel.XLSX ')

Justere rad- og kolonnedimensjoner

Radhøyden og kolonnebredden på et Excel -dokument kan også justeres ved hjelp av Python. OpenPyxl-modulen har to innebygde metoder som kan brukes til å utføre disse handlingene. Først velger vi arket som vi ønsker å endre kolonnebredde eller radhøyde. Deretter bruker vi en metode på den spesifikke raden eller kolonnen.

>>> # Importere OpenPyxl
>>> Importer OpenPyxl
>>> # Last inn arbeidsbok
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Velge ark
>>> Sheet_1 = work_book ['første ark']
>>> # Endre høyden på første rad
>>> ark_1.ROW_DIMENSIONS [1].Høyde = 50
>>> # Lagre arbeidsbok
>>> work_book.Lagre ('Eksempel.XLSX ')

Tilsvarende kan vi endre bredden på en kolonne ved hjelp av følgende kode

>>> # Velge ark fra Excel Workbook
>>> Sheet_2 = work_book ['andre ark']
>>> # Endre bredden på en kolonne
>>> ark_2.kolonne_dimensjoner ['A'].bredde = 50
>>> # Lagre arbeidsbok
>>> work_book.Lagre ('Eksempel.XLSX ')

Ovennevnte kode vil endre høyden på den første raden til 50 punkter og bredden på kolonnen A til 50 punkter.

Sammenslåing og ubrukende celler

Når vi jobber med Excel -regneark, trenger vi ofte å slå sammen og fjerne celler. For å slå sammen celler i Python, kan en enkel funksjon basert på openpyxl brukes. OpenPyxL -modulen tilbyr merge_cells () -metoden, som kan brukes til å slå sammen celler i Excel. Den nye cellen vil ta på seg navnet på øverste venstre celle. Hvis vi for eksempel vil slå sammen cellene fra celle A1 til celle B2, vil den nyopprettede cellen bli referert til som A1. For å slå sammen celler ved hjelp av OpenPyxL, velger vi først arket, og deretter bruker vi Merge_Cells () -metoden på arket.

>>> # Importere OpenPyxl -modulen
>>> Importer OpenPyxl
>>> # Last inn arbeidsbok
>>> work_book = openpyxl.LOAD_WORKBOOK ('Eksempel.XLSX ')
>>> # Velge første ark fra Excel Workbook
>>> Sheet_1 = work_book ['første ark']
>>> # Slå sammen celler fra A1 til B2 i ark 1
>>> ark_1.Merge_cells ('A1: B2')
>>> # Lagre arbeidsbok
>>> work_book.Lagre ('Eksempel.XLSX ')

På samme måte kan metoden UngeRge_Cells (). Følgende kode kan brukes til å avgjøre celler:

>>> # Velge ark fra arbeidsbok
>>> Sheet_1 = work_book ['første ark']
>>> # Unmlering celler fra A1 til B2
>>> ark_1.unmerge_cells ('A1: B2')
>>> # Lagre arbeidsbok
>>> work_book.Lagre ('Eksempel.XLSX ')

Konklusjon

Excel -regneark brukes ofte til datamanipulering. Imidlertid kan slike oppgaver være monotone. Derfor, i slike tilfeller, kan programmering brukes til å automatisere regnearkmanipulering.

I denne artikkelen diskuterte vi noen av de nyttige funksjonene til Pythons OpenPyxl -modul. Vi viste deg hvordan du lager, leser, fjerner og endrer Excel -regneark, hvordan du endrer stilen, bruker skrift, grenser og dimensjoner av celler og hvordan du kan slå sammen og unmge celler. Ved å bruke disse funksjonene, kan du automatisere mange regnearkmanipulasjonsoppgaver ved hjelp av Python.