Python

Manipulere Excel-regneark ved hjelp av Python

Manipulere 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 hjelpeinnholdet i pip returneres, blir pip installert; Ellers går du til følgende lenke og laster 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 installasjon av 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 til å lage et Excel-dokument. Først åpner du ledeteksten ved å skrive 'cmd' i søkefeltet; deretter inn

C: \ Brukere \ windows> python

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

>>> # importerer openpyxl-modul
>>> importer openpyxl
>>> # Initialisere en arbeidsbok
>>> arbeidsbok = openpyxl.Arbeidsbok ()
>>> # lagre arbeidsbok som eksempel.xlsx '
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Ovennevnte kommandoer oppretter et Excel-dokument kalt eksempel.xlsx. Deretter vil vi manipulere dette Excel-dokumentet.

Manipulere 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 ikke-negativt heltall (inkludert 0), og tittel er tittelen på arket. En liste over alle arkene i arbeidsbokobjektet kan vises ved å ringe arknavnlisten.

>>> # importerer openpyxl
>>> importer openpyxl
>>> # laster eksisterende Excel-dokument inn i arbeidsbokobjektet
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Opprette et nytt ark ved 0. Indeks
>>> arbeidsbok.create_sheet (index = 0, title = 'First Sheet')

>>> # Få alle arkene
>>> arbeidsbok.arknavn
['First Sheet', 'Sheet']
>>> # Lagre Excel-dokument
>>> arbeidsbok.lagre ('eksempel.xlsx ')

I den ovennevnte koden opprettet vi et ark med navnet First Sheet og plasserte det på 0. indeks. Arket som tidligere var plassert ved den 0. Indeksen ble flyttet til den første indeksen, som vist i utdataene. Nå skal vi endre navnet på det originale arket fra ark til annet ark.

Tittelattributtet inneholder 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 Document
>>> ark = arbeidsbok.aktiv
>>> # Utskriftsarknavn
>>> utskrift (ark.tittel)
Første ark >>> # Navigere til andre ark (i indeks 1)
>>> arbeidsbok.aktiv = 1
>>> # Bli aktivt ark
>>> ark = arbeidsbok.aktiv
>>> # utskrift Arknavn
>>> utskrift (ark.tittel)
Ark >>> # Endring av arketittel
>>> ark.title = 'Second Sheet'
>>> # Utskriftstittel
>>> utskrift (ark.tittel)
Andre ark

På samme måte kan vi fjerne et ark fra Excel-dokumentet. Openpyxl-modulen tilbyr remove () -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:

>>> # fjerne et ark ved navn
>>> arbeidsbok.fjerne (arbeidsbok ['Andre ark'])
>>> # får alle arkene
>>> arbeidsbok.arknavn
['Første ark']
>>> # lagring av Excel-dokument
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Legge til data i celler

Så langt har vi vist deg hvordan du oppretter eller sletter ark i et Excel-dokument. Nå skal vi legge til data i cellene på forskjellige ark. I dette eksemplet har vi et enkelt ark med navnet First Sheet i dokumentet vårt, og vi vil lage to ark til.

>>> # importerer openpyxl
>>> importer openpyxl
>>> # laster inn arbeidsbok
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Opprette et nytt ark ved første indeks
>>> arbeidsbok.create_sheet (index = 1, title = 'Second Sheet')

>>> # lage et nytt ark ved andre indeks
>>> arbeidsbok.create_sheet (index = 2, title = 'Third Sheet')

>>> # får alle arkene
>>> arbeidsbok.arknavn
['First Sheet', 'Second Sheet', 'Third Sheet']

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

>>> # Få første ark
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # Legge til data i 'A1' celle på første ark
>>> sheet_1 ['A1'] = 'Navn'
>>> # Få andre ark
>>> ark_2 = arbeidsbok ['Andre ark']
>>> # Legge til data i "A1" -celle for andre ark
>>> sheet_2 ['A1'] = 'ID'
>>> # Få tredje ark
>>> ark_3 = arbeidsbok ['Tredje ark']
>>> # Legge til data i 'A1' celle på tredje ark
>>> sheet_3 ['A1'] = 'Karakterer'
>>> # Lagre Excel-arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Lese Excel-ark

Openpyxl-modulen bruker verdiattributtet til en celle for å lagre dataene til den cellen. Vi kan lese dataene i en celle ved å ringe celleens verdiattributt. Nå har vi tre ark, og hvert ark inneholder noen data. Vi kan lese dataene ved å bruke følgende funksjoner i openpyxl:

>>> # importerer openpyxl
>>> importer openpyxl
>>> # laster inn arbeidsbok
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Få første ark
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # Få andre ark
>>> ark_2 = arbeidsbok ['Andre ark']
>>> # Få tredje ark
>>> ark_3 = arbeidsbok ['Tredje ark']
>>> # utskriftsdata fra 'A1' celle i første ark
>>> utskrift (sheet_1 ['A1'].verdi)
Navn
>>> # utskriftsdata fra 'A1' celle i andre ark
>>> utskrift (sheet_2 ['A1'].verdi)
ID
>>> # utskriftsdata fra 'A1' celle i tredje ark
>>> utskrift (ark_3 ['A1'].verdi)
Karakterer

Endre skrifttyper og farger

Deretter skal vi vise deg hvordan du endrer fonten til en celle ved å bruke Font () -funksjonen. Først importerer du openpyxl.stiler objekt. Font () -metoden tar en liste over argumenter, inkludert:

  • navn (streng): navnet på skrifttypen
  • størrelse (int eller flyte): størrelsen på fonten
  • understreking (streng): understrekingstypen
  • farge (streng): den heksadesimale fargen på teksten
  • kursiv (bool): om skriften er kursiv
  • fet (bool): om 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 vi vil bruke stilen på. Deretter bruker vi stil til den valgte cellen.

>>> # importerer openpyxl
>>> importer openpyxl
>>> # importerer fontmetode fra openpyxl.stiler
>>> fra openpyxl.stiler importerer font
>>> # laster inn arbeidsbok
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Opprette stilobjekt
>>> stil = skrift (navn = 'Consolas', størrelse = 13, fet = sann,
... kursiv = Falsk)
>>> # Velge ark fra arbeidsbok
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # Velge cellen vi vil legge til stiler
>>> a1 = sheet_1 ['A1']
>>> # Bruke stiler på cellen
>>> a1.font = stil
>>> # Lagrer arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Påføring av grenser på celler

Vi kan bruke grenser til cellene i et Excel-ark ved å bruke metodene Border () og Side () i openpyxl.stiler.grenser modul. Vi kan overføre forskjellige funksjoner som parametere til Border () -metoden. Følgende er noen av funksjonene som sendes som parametere til Border () -metoden 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 til toppen av en celle
  • bunn: bruk en kant til bunnen av en celle

Disse funksjonene tar stilattributter som parametere. Stilattributtet definerer stilen til grensen (f.eks.g., solid, stiplet). Stilparametere kan ha en av følgende verdier.

  • dobbelt: en dobbel linjegrense
  • knust: en stiplet grense
  • tynn: en tynn kant
  • medium: en middels grense
  • mediumDashDot: en stiplet og prikket kant av middels vekt
  • tykk: en tykk kant
  • dashDot: en stiplet og prikket kant
  • hår: en veldig tynn kant
  • prikket: en prikket kant

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

>>> # importerer openpyxl
>>> importer openpyxl
>>> # importerer grense- og sideklasser
>>> fra openpyxl.stiler.grenser import Border, Side
>>> # laster inn arbeidsbok
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Velge ark
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # Velge forskjellige celler fra ark
>>> cell_1 = sheet_1 ['A1']
>>> cell_2 = sheet_1 ['B2']
>>> cell_3 = sheet_1 ['C3']
>>> # Definere forskjellige kantstiler
>>> style_1 = Border (nederst = Side (style = 'prikket'))
>>> style_2 = Border (høyre = Side (style = 'tynn'))
>>> style_3 = Border (top = Side (style = 'dashDot'))
>>> # bruke kantstiler på cellene
>>> cell_1.grense = stil_1
>>> celle_2.border = style_2
>>> celle_3.border = stil_3
>>> # Lagrer arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Justering av rad- og kolonnedimensjoner

Radhøyden og kolonnebredden til 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 vil endre kolonnebredde eller radhøyde for. Deretter bruker vi en metode på den spesifikke raden eller kolonnen.

>>> # importerer openpyxl
>>> importer openpyxl
>>> # laster inn arbeidsbok
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # valg av ark
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # endre høyden på første rad
>>> ark_1.raddimensjoner [1].høyde = 50
>>> # Lagrer arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

På samme måte kan vi endre bredden på en kolonne ved hjelp av følgende kode

>>> # velge ark fra excel arbeidsbok
>>> sheet_2 = arbeidsbok ['Andre ark']
>>> # endre bredden på en kolonne
>>> ark_2.kolonnedimensjoner ['A'].bredde = 50
>>> # Lagrer arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

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

Sammenslåing og sammenslåing av celler

Når vi arbeider med Excel-regneark, trenger vi ofte å slå sammen og slå sammen 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 navnet på den øverste venstre cellen. 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 til arket.

>>> # importerer openpyxl-modul
>>> importer openpyxl
>>> # laster inn arbeidsbok
>>> arbeidsbok = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # velge første ark fra excel arbeidsbok
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # sammenslåing av celler fra A1 til B2 i ark 1
>>> ark_1.merge_cells ('A1: B2')
>>> # lagre arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Tilsvarende kan metoden unmerge_cells () brukes til å slå sammen celler i et Excel-regneark. Følgende kode kan brukes til å slå sammen celler:

>>> # velge ark fra arbeidsbok
>>> sheet_1 = arbeidsbok ['Første ark']
>>> # løsne celler fra A1 til B2
>>> ark_1.unmerge_cells ('A1: B2')
>>> # lagre arbeidsbok
>>> arbeidsbok.lagre ('eksempel.xlsx ')

Konklusjon

Excel-regneark brukes ofte til manipulering av data. Imidlertid kan slike oppgaver være ensformige. 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 oppretter, leser, fjerner og endrer Excel-regneark, hvordan du endrer stilen, bruker skrift, rammer og dimensjoner på celler, og hvordan du fletter og fletter celler. Ved å bruke disse funksjonene kan du automatisere mange oppgaver for manipulering av regneark ved hjelp av Python.

Mus Hvordan reversere rulle retning for mus og styreplater i Windows 10
Hvordan reversere rulle retning for mus og styreplater i Windows 10
Mus og Pekeplates gjør ikke bare databehandling enkelt, men mer effektivt og mindre tidkrevende. Vi kan ikke forestille oss et liv uten disse enhetene...
Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...