Python

Manipulering af Excel-regneark ved hjælp af Python

Manipulering af Excel-regneark ved hjælp af Python

Microsoft Excel er et regnearksoftware, der bruges til at gemme og administrere tabeldata. Desuden med Excel kan beregninger udføres ved at anvende formler på dataene, og datavisualiseringer kan produceres.Mange opgaver, der udføres i regneark, såsom matematiske operationer, kan automatiseres via programmering, og mange programmeringssprog har moduler til manipulation af Excel-regneark. I denne vejledning viser vi dig, hvordan du bruger Pythons openpyxl-modul til at læse og ændre Excel-regneark.

Installation af openpyxl

Inden du kan installere openpyxl, skal du installere pip. Pip bruges til at installere Python-pakker. Kør følgende kommando i kommandoprompten for at se, om pip er installeret.

C: \ Brugere \ windows> pip-hjælp

Hvis hjælpens indhold af pip returneres, så installeres pip; Ellers skal du gå til følgende link og downloade get-pip.py-fil:

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

Kør nu følgende kommando for at installere pip:

C: \ Brugere \ windows> python get-pip.py

Efter installation af pip kan følgende kommando bruges til at installere openpyxl.

C: \ Brugere \ windows> pip installer openpyxl

Oprettelse af et Excel-dokument

I dette afsnit bruger vi openpyxl-modulet til at oprette et Excel-dokument. Åbn først kommandoprompten ved at skrive 'cmd' i søgefeltet; derefter indtaste

C: \ Brugere \ windows> python

For at oprette en Excel-projektmappe importerer vi openpyxl-modulet og bruger derefter metoden 'Arbejdsbog ()' til at oprette en projektmappe.

>>> # importerer openpyxl-modul
>>> import openpyxl
>>> # Initialisering af en projektmappe
>>> arbejdsbog = openpyxl.Arbejdsbog ()
>>> # gemmer projektmappe som 'eksempel.xlsx '
>>> arbejdsbog.gem ('eksempel.xlsx ')

Ovenstående kommandoer opretter et Excel-dokument kaldet eksempel.xlsx. Dernæst manipulerer vi dette Excel-dokument.

Manipulering af ark i et Excel-dokument

Vi har oprettet et Excel-dokument kaldet eksempel.xlsx. Nu vil vi manipulere arkene i dette dokument ved hjælp af Python. Openpyxl-modulet har en 'create_sheet ()' metode, der kan bruges til at oprette et nyt ark. Denne metode tager to argumenter: indeks og titel. Indeks definerer placeringen af ​​arket ved hjælp af et ikke-negativt heltal (inklusive 0), og titlen er titlen på arket. En liste med alle arkene i objektet work_book kan vises ved at kalde listen over arknavne.

>>> # importerer openpyxl
>>> import openpyxl
>>> # indlæsning af eksisterende Excel-dokument i work_book Object
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Oprettelse af et nyt ark ved 0. indeks
>>> arbejdsbog.create_sheet (index = 0, title = 'First Sheet')

>>> # Få alle arkene
>>> arbejdsbog.arknavne
['Første ark', 'Ark']
>>> # Gemme Excel-dokument
>>> arbejdsbog.gem ('eksempel.xlsx ')

I ovenstående kode oprettede vi et ark med navnet First Sheet og placerede det på 0th index. Arket, der tidligere var placeret ved det 0. indeks, blev flyttet til det 1. indeks som vist i output. Nu skal vi ændre navnet på det originale ark fra ark til andet ark.

Titelattributten indeholder navnet på arket. For at omdøbe et ark skal vi først navigere til det ark som følger.

>>> # Få aktivt ark fra Excel-dokument
>>> ark = arbejdsbog.aktiv
>>> # Udskrivningsnavn
>>> print (ark.titel)
Første ark >>> # Navigering til andet ark (i indeks 1)
>>> arbejdsbog.aktiv = 1
>>> # At blive aktivt ark
>>> ark = arbejdsbog.aktiv
>>> # udskrivning Arknavn
>>> print (ark.titel)
Ark >>> # Ændring af arketitel
>>> ark.title = 'Andet ark'
>>> # Udskrivningstitel
>>> print (ark.titel)
Andet ark

På samme måde kan vi fjerne et ark fra Excel-dokumentet. Openpyxl-modulet tilbyder metoden remove () til at fjerne et ark. Denne metode tager navnet på det ark, der skal fjernes, som et argument og fjerner derefter det ark. Vi kan fjerne andet ark som følger:

>>> # fjernelse af et ark ved navn
>>> arbejdsbog.fjern (arbejdsbog ['Andet ark'])
>>> # får alle arkene
>>> arbejdsbog.arknavne
['Første ark']
>>> # gemmer Excel-dokument
>>> arbejdsbog.gem ('eksempel.xlsx ')

Tilføjelse af data til celler

Indtil videre har vi vist dig, hvordan du opretter eller sletter ark i et Excel-dokument. Nu skal vi tilføje data til cellerne på forskellige ark. I dette eksempel har vi et enkelt ark med navnet First Sheet i vores dokument, og vi vil oprette yderligere to ark.

>>> # importerer openpyxl
>>> import openpyxl
>>> # indlæser projektmappe
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Oprettelse af et nyt ark ved 1. indeks
>>> arbejdsbog.create_sheet (index = 1, title = 'Second Sheet')

>>> # opretter et nyt ark ved 2. indeks
>>> arbejdsbog.create_sheet (index = 2, title = 'Third Sheet')

>>> # får alle arkene
>>> arbejdsbog.arknavne
['Første ark', 'Andet ark', 'Tredje ark']

Nu har vi tre ark, og vi vil tilføje data til cellerne på disse ark.

>>> # Få første ark
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # Tilføjelse af data til 'A1' celle på første ark
>>> sheet_1 ['A1'] = 'Navn'
>>> # At få andet ark
>>> ark_2 = arbejdsbog ['Andet ark']
>>> # Tilføjelse af data til 'A1' celle i det andet ark
>>> sheet_2 ['A1'] = 'ID'
>>> # Få tredje ark
>>> ark_3 = arbejdsbog ['Tredje ark']
>>> # Tilføjelse af data til 'A1' celle i tredje ark
>>> sheet_3 ['A1'] = 'Karakterer'
>>> # Gemme Excel-projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

Læsning af Excel-ark

Openpyxl-modulet bruger værdiattributten for en celle til at gemme dataene for den celle. Vi kan læse dataene i en celle ved at kalde celleens værdiattribut. Nu har vi tre ark, og hvert ark indeholder nogle data. Vi kan læse dataene ved hjælp af følgende funktioner i openpyxl:

>>> # importerer openpyxl
>>> import openpyxl
>>> # indlæser projektmappe
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Få første ark
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # At få andet ark
>>> ark_2 = arbejdsbog ['Andet ark']
>>> # Få tredje ark
>>> ark_3 = arbejdsbog ['Tredje ark']
>>> # udskrivning af data fra 'A1' celle i første ark
>>> udskriv (sheet_1 ['A1'].værdi)
Navn
>>> # udskrivning af data fra 'A1' celle i andet ark
>>> udskriv (ark_2 ['A1'].værdi)
ID
>>> # udskrivning af data fra 'A1' celle i tredje ark
>>> udskriv (ark_3 ['A1'].værdi)
Karakterer

Ændring af skrifttyper og farver

Dernæst skal vi vise dig, hvordan du ændrer skrifttypen i en celle ved hjælp af funktionen Font (). Først skal du importere openpyxl.stilarter objekt. Metoden Font () tager en liste over argumenter, herunder:

  • navn (streng): navnet på skrifttypen
  • størrelse (int eller flyde): skrifttypens størrelse
  • understregning (streng): understregningstypen
  • farve (streng): den hexadecimale farve på teksten
  • kursiv (bool): om skrifttypen er kursiv
  • fed (bool): om skrifttypen er fed

For at anvende stilarter skal vi først oprette et objekt ved at videregive alle parametrene til Font () -metoden. Derefter vælger vi arket, og inden i arket vælger vi den celle, som vi vil anvende stilen på. Derefter anvender vi stil til den valgte celle.

>>> # importerer openpyxl
>>> import openpyxl
>>> # importerer skrifttypemetode fra openpyxl.stilarter
>>> fra openpyxl.stilarter importerer skrifttype
>>> # indlæser projektmappe
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Oprettelse af stilobjekt
>>> stil = skrifttype (navn = 'Consolas', størrelse = 13, fed = sand,
… Kursiv = Falsk)
>>> # Valg af ark fra projektmappe
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # Valg af den celle, vi vil tilføje typografier
>>> a1 = sheet_1 ['A1']
>>> # Anvendelse af stilarter på cellen
>>> a1.font = stil
>>> # Gemme projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

Anvendelse af grænser på celler

Vi kan anvende kanter på cellerne i et Excel-ark ved hjælp af metoderne Border () og Side () i openpyxl.stilarter.grænsemodul. Vi kan videregive forskellige funktioner som parametre til Border () -metoden. Følgende er nogle af de funktioner, der sendes som parametre til Border () -metoden for at definere dimensionerne af grænsen.

  • venstre: anvend en kant til venstre for en celle
  • ret: anvend en kant til højre for en celle
  • top: Anvend en kant til toppen af ​​en celle
  • bund: Anvend en kant til bunden af ​​en celle

Disse funktioner tager stilattributter som parametre. Stilattributten definerer grænsens stil (f.eks.g., solid, stiplet). Stilparametre kan have en af ​​følgende værdier.

  • dobbelt: en dobbeltlinjegrænse
  • stiplede: en stiplet grænse
  • tynd: en tynd kant
  • medium: en mellemgrænse
  • mediumDashDot: en stiplet og prikket kant af medium vægt
  • tyk: en tyk kant
  • dashDot: en stiplet og stiplet kant
  • hår: en meget tynd kant
  • prikket: en prikket kant

Nu vil vi anvende forskellige typer grænser på forskellige celler i vores regneark. Først vælger vi celler, og derefter definerer vi kantstilarter og anvender disse stilarter på forskellige celler.

>>> # importerer openpyxl
>>> import openpyxl
>>> # importerer kant- og sideklasser
>>> fra openpyxl.stilarter.grænser import Border, Side
>>> # indlæser projektmappe
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # Valg af ark
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # Valg af forskellige celler fra ark
>>> cell_1 = sheet_1 ['A1']
>>> cell_2 = sheet_1 ['B2']
>>> cell_3 = sheet_1 ['C3']
>>> # Definere forskellige kantstilarter
>>> style_1 = Border (nederst = Side (style = 'prikket'))
>>> style_2 = Border (højre = Side (style = 'tynd'))
>>> style_3 = Border (top = Side (style = 'dashDot'))
>>> # anvender kantstilarter på cellerne
>>> cell_1.grænse = stil_1
>>> celle_2.border = style_2
>>> celle_3.grænse = stil_3
>>> # Gemme projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

Justering af række- og søjledimensioner

Rækkehøjden og kolonnebredden i et Excel-dokument kan også justeres ved hjælp af Python. Openpyxl-modulet har to indbyggede metoder, der kan bruges til at udføre disse handlinger. Først vælger vi det ark, som vi vil ændre søjlebredden eller rækkehøjden for. Derefter anvender vi en metode til den specifikke række eller kolonne.

>>> # importerer openpyxl
>>> import openpyxl
>>> # indlæser projektmappe
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # valg af ark
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # ændring af højden på første række
>>> ark_1.række_dimensioner [1].højde = 50
>>> # Gemme projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

På samme måde kan vi ændre bredden på en kolonne ved hjælp af følgende kode

>>> # valg af ark fra excel-projektmappe
>>> ark_2 = arbejdsbog ['Andet ark']
>>> # ændring af bredden af ​​en kolonne
>>> ark_2.kolonnedimensioner ['A'].bredde = 50
>>> # Gemme projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

Ovenstående kode ændrer højden på den første række til 50 point og bredden af ​​kolonne A til 50 point.

Fletning og fletning af celler

Når vi arbejder med Excel-regneark, skal vi ofte flette og flette celler sammen. For at flette celler i Python kan en simpel funktion baseret på openpyxl bruges. Openpyxl-modulet tilbyder metoden merge_cells (), som kan bruges til at flette celler i Excel. Den nye celle får navnet på den øverste venstre celle. For eksempel, hvis vi vil flette cellerne fra celle A1 til celle B2, vil den nyoprettede celle blive henvist til som A1. For at flette celler ved hjælp af openpyxl vælger vi først arket, og derefter anvender vi merge_cells () -metoden til arket.

>>> # importerer openpyxl-modul
>>> import openpyxl
>>> # indlæser projektmappe
>>> arbejdsbog = openpyxl.load_workbook ('eksempel.xlsx ')
>>> # valg af første ark fra Excel-projektmappe
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # fletning af celler fra A1 til B2 i ark 1
>>> ark_1.merge_cells ('A1: B2')
>>> # gemmer projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

Tilsvarende kan metoden unmerge_cells () bruges til at flette celler i et Excel-regneark. Følgende kode kan bruges til at flette celler sammen:

>>> # valg af ark fra projektmappen
>>> sheet_1 = arbejdsbog ['Første ark']
>>> # fletning af celler fra A1 til B2
>>> ark_1.unmerge_cells ('A1: B2')
>>> # gemmer projektmappe
>>> arbejdsbog.gem ('eksempel.xlsx ')

Konklusion

Excel-regneark bruges ofte til manipulation af data. Sådanne opgaver kan dog være monotone. Derfor kan programmering i sådanne tilfælde bruges til at automatisere regnearkmanipulation.

I denne artikel diskuterede vi nogle af de nyttige funktioner i Pythons openpyxl-modul. Vi viste dig, hvordan du opretter, læser, fjerner og ændrer Excel-regneark, hvordan du ændrer typografien, anvender skrifttype, kanter og dimensioner på celler, og hvordan du fletter og fletter celler. Ved at anvende disse funktioner kan du automatisere mange regnearkmanipulationsopgaver ved hjælp af Python.

OpenTTD vs Simutrans
Oprettelse af din egen transportsimulering kan være sjovt, afslappende og ekstremt lokkende. Derfor skal du sørge for at prøve så mange spil som mulig...
OpenTTD Tutorial
OpenTTD er et af de mest populære forretningssimuleringsspil derude. I dette spil skal du oprette en vidunderlig transportvirksomhed. Du starter dog i...
SuperTuxKart til Linux
SuperTuxKart er en fantastisk titel designet til at give dig Mario Kart-oplevelsen gratis på dit Linux-system. Det er ret udfordrende og sjovt at spil...