Pytonorm

Manipulera Excel-kalkylark med Python

Manipulera Excel-kalkylark med Python

Microsoft Excel är ett kalkylprogram som används för att lagra och hantera tabelldata. Dessutom, med Excel, kan beräkningar utföras genom att tillämpa formler på data och datavisualiseringar kan produceras.Många uppgifter som utförs i kalkylblad, såsom matematiska operationer, kan automatiseras via programmering, och många programmeringsspråk har moduler för att manipulera Excel-kalkylblad. I den här handledningen visar vi dig hur du använder Pythons openpyxl-modul för att läsa och ändra Excel-kalkylblad.

Installerar openpyxl

Innan du kan installera openpyxl måste du installera pip. Pip används för att installera Python-paket. Kör följande kommando i kommandotolken för att se om pip är installerat.

C: \ Användare \ windows> pip-hjälp

Om hjälpinnehållet i pip returneras installeras pip; annars går du till följande länk och laddar ner get-pip.py-fil:

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

Kör nu följande kommando för att installera pip:

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

Efter installation av pip kan följande kommando användas för att installera openpyxl.

C: \ Användare \ windows> pip installera openpyxl

Skapa ett Excel-dokument

I det här avsnittet använder vi openpyxl-modulen för att skapa ett Excel-dokument. Öppna först kommandotolken genom att skriva 'cmd' i sökfältet; ange sedan

C: \ Användare \ windows> python

För att skapa en Excel-arbetsbok importerar vi openpyxl-modulen och använder sedan metoden 'Workbook ()' för att skapa en arbetsbok.

>>> # importerar openpyxl-modulen
>>> importera openpyxl
>>> # Initiera en arbetsbok
>>> arbetsbok = openpyxl.Arbetsbok ()
>>> # spara arbetsbok som 'exempel.xlsx '
>>> arbetsbok.spara ('exempel.xlsx ')

Ovanstående kommandon skapar ett Excel-dokument som heter exempel.xlsx. Därefter kommer vi att manipulera detta Excel-dokument.

Manipulera ark i ett Excel-dokument

Vi har skapat ett Excel-dokument som heter exempel.xlsx. Nu kommer vi att manipulera arken i detta dokument med hjälp av Python. Openpyxl-modulen har en 'create_sheet ()' -metod som kan användas för att skapa ett nytt ark. Denna metod tar två argument: index och titel. Index definierar placeringen av arket med valfritt icke-negativt heltal (inklusive 0), och titel är arketiteln. En lista över alla ark i arbetsbokobjektet kan visas genom att anropa listnamnet.

>>> # importerar openpyxl
>>> importera openpyxl
>>> # laddar befintligt Excel-dokument i arbetsboksobjektet
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # Skapa ett nytt ark vid 0: e index
>>> arbetsbok.create_sheet (index = 0, title = 'First Sheet')

>>> # Få alla ark
>>> arbetsbok.arknamn
['First Sheet', 'Sheet']
>>> # Spara Excel-dokument
>>> arbetsbok.spara ('exempel.xlsx ')

I ovanstående kod skapade vi ett ark med namnet First Sheet och placerade det på 0: e index. Arket som tidigare placerades vid det 0: e indexet flyttades till det första indexet, som visas i utdata. Nu ska vi ändra namnet på originalarket från Sheet till Second Sheet.

Titelattributet innehåller namnet på arket. För att byta namn på ett ark måste vi först navigera till det arket enligt följande.

>>> # Få aktivt ark från Excel-dokument
>>> ark = arbetsbok.aktiva
>>> # Utskriftsnamn
>>> utskrift (ark.titel)
Första blad >>> # Navigera till andra blad (i index 1)
>>> arbetsbok.aktiv = 1
>>> # Bli aktivt ark
>>> ark = arbetsbok.aktiva
>>> # utskriftsarknamn
>>> utskrift (ark.titel)
Arket >>> # Ändrar arktitel
>>> ark.title = 'Andra blad'
>>> # Utskriftstitel
>>> utskrift (ark.titel)
Andra blad

På samma sätt kan vi ta bort ett ark från Excel-dokumentet. Openpyxl-modulen erbjuder borttagningsmetoden () för att ta bort ett ark. Denna metod tar namnet på arket som ska tas bort som ett argument och tar sedan bort det arket. Vi kan ta bort andra blad enligt följande:

>>> # ta bort ett ark med namn
>>> arbetsbok.ta bort (arbetsbok ['Andra blad'])
>>> # får alla lakan
>>> arbetsbok.arknamn
['Första bladet']
>>> # sparar Excel-dokument
>>> arbetsbok.spara ('exempel.xlsx ')

Lägga till data i celler

Hittills har vi visat dig hur du skapar eller tar bort ark i ett Excel-dokument. Nu ska vi lägga till data i cellerna i olika ark. I det här exemplet har vi ett enda ark som heter First Sheet i vårt dokument och vi vill skapa ytterligare två ark.

>>> # importerar openpyxl
>>> importera openpyxl
>>> # laddar arbetsbok
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # Skapa ett nytt ark vid första index
>>> arbetsbok.create_sheet (index = 1, title = 'Second Sheet')

>>> # skapa ett nytt ark vid andra index
>>> arbetsbok.create_sheet (index = 2, title = 'Third Sheet')

>>> # får alla lakan
>>> arbetsbok.arknamn
['First Sheet', 'Second Sheet', 'Third Sheet']

Nu har vi tre ark, och vi kommer att lägga till data i cellerna på dessa ark.

>>> # Få första sidan
>>> sheet_1 = arbetsbok ['Första ark']
>>> # Lägga till data i 'A1' -cellen på första arket
>>> sheet_1 ['A1'] = 'Namn'
>>> # Få andra blad
>>> ark_2 = arbetsbok ['Andra blad']
>>> # Lägga till data i "A1" -cellen i andra arket
>>> sheet_2 ['A1'] = 'ID'
>>> # Få tredje arket
>>> ark_3 = arbetsbok ['Tredje bladet]]
>>> # Lägga till data till 'A1' -cellen i tredje arket
>>> sheet_3 ['A1'] = 'Betyg'
>>> # Spara Excel-arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

Läser Excel-ark

Openpyxl-modulen använder värdeattributet för en cell för att lagra data för den cellen. Vi kan läsa data i en cell genom att anropa cellens värdeattribut. Nu har vi tre ark, och varje ark innehåller en del data. Vi kan läsa data genom att använda följande funktioner i openpyxl:

>>> # importerar openpyxl
>>> importera openpyxl
>>> # laddar arbetsbok
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # Få första sidan
>>> sheet_1 = arbetsbok ['Första ark']
>>> # Få andra blad
>>> ark_2 = arbetsbok ['Andra blad']
>>> # Få tredje arket
>>> ark_3 = arbetsbok ['Tredje bladet]]
>>> # utskriftsdata från 'A1' -cellen i första arket
>>> skriva ut (sheet_1 ['A1'].värde)
namn
>>> # utskriftsdata från "A1" -cellen i andra arket
>>> skriva ut (sheet_2 ['A1'].värde)
ID
>>> # utskriftsdata från "A1" -cellen i tredje arket
>>> skriva ut (ark_3 ['A1'].värde)
Betyg

Byta typsnitt och färger

Därefter kommer vi att visa dig hur du ändrar typsnittet för en cell med hjälp av funktionen Font (). Importera först openpyxl.stilar objekt. Font () -metoden tar en lista med argument, inklusive:

  • namn (sträng): namnet på teckensnittet
  • storlek (int eller float): typsnittets storlek
  • understrykning (sträng): understrykningstypen
  • färg (sträng): den hexadecimala färgen på texten
  • kursiv (bool): om teckensnittet är kursiverat
  • fet (bool): om teckensnittet är fetstil

För att tillämpa stilar måste vi först skapa ett objekt genom att skicka alla parametrar till Font () -metoden. Sedan väljer vi arket och inuti arket väljer vi cellen som vi vill tillämpa stilen på. Sedan tillämpar vi stil på den valda cellen.

>>> # importerar openpyxl
>>> importera openpyxl
>>> # importera teckensnittsmetod från openpyxl.stilar
>>> från openpyxl.stilar importerar teckensnitt
>>> # laddar arbetsbok
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # Skapa stilobjekt
>>> stil = teckensnitt (namn = 'Consolas', storlek = 13, fetstil = sant,
... kursiv = Falsk)
>>> # Välja ark från arbetsbok
>>> sheet_1 = arbetsbok ['Första ark']
>>> # Välja cellen vi vill lägga till stilar
>>> a1 = sheet_1 ['A1']
>>> # Tillämpa stilar på cellen
>>> a1.font = stil
>>> # Sparar arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

Tillämpa gränser på celler

Vi kan applicera gränser på cellerna i ett Excel-ark med metoderna Border () och Side () i openpyxl.stilar.gränsmodul. Vi kan skicka olika funktioner som parametrar till Border () -metoden. Följande är några av funktionerna som skickas som parametrar till Border () -metoden för att definiera gränsens dimensioner.

  • vänster: applicera en kant till vänster om en cell
  • rätt: applicera en kant till höger om en cell
  • topp: applicera en kant till toppen av en cell
  • botten: applicera en kant längst ner i en cell

Dessa funktioner tar stilattribut som parametrar. Style-attributet definierar gränsen (e.g., solid, streckad). Stilparametrar kan ha något av följande värden.

  • dubbel: en dubbellinjegräns
  • streckad: en streckad kant
  • tunn: en tunn kant
  • medium: en medelgräns
  • mediumDashDot: en streckad och prickad kant av medelvikt
  • tjock: en tjock kant
  • dashDot: en streckad och prickad kant
  • hår: en mycket tunn kant
  • prickad: en prickad kant

Nu kommer vi att tillämpa olika typer av gränser på olika celler i våra kalkylark. Först väljer vi celler och sedan definierar vi kantstilar och tillämpar dessa stilar på olika celler.

>>> # importerar openpyxl
>>> importera openpyxl
>>> # importerar gräns- och sidoklasser
>>> från openpyxl.stilar.gränser import Border, Side
>>> # laddar arbetsbok
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # Välja blad
>>> sheet_1 = arbetsbok ['Första ark']
>>> # Välja olika celler från ark
>>> cell_1 = sheet_1 ['A1']
>>> cell_2 = sheet_1 ['B2']
>>> cell_3 = sheet_1 ['C3']
>>> # Definiera olika kantstilar
>>> style_1 = Border (botten = Side (style = 'prickad'))
>>> style_2 = Border (höger = Side (style = 'tunn'))
>>> style_3 = Border (top = Side (style = 'dashDot'))
>>> # tillämpa kantstilar på cellerna
>>> cell_1.gräns = stil_1
>>> cell_2.gräns = stil_2
>>> cell_3.gräns = stil_3
>>> # Sparar arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

Justera rad- och kolumnmått

Radhöjden och kolumnbredden för ett Excel-dokument kan också justeras med Python. Openpyxl-modulen har två inbyggda metoder som kan användas för att utföra dessa åtgärder. Först väljer vi arket som vi vill ändra kolumnbredd eller radhöjd för. Sedan använder vi en metod för den specifika raden eller kolumnen.

>>> # importerar openpyxl
>>> importera openpyxl
>>> # laddar arbetsbok
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # väljark
>>> sheet_1 = arbetsbok ['Första ark']
>>> # ändra höjden på första raden
>>> ark_1.raddimensioner [1].höjd = 50
>>> # Sparar arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

På samma sätt kan vi ändra bredden på en kolumn med hjälp av följande kod

>>> # välja ark från Excel-arbetsbok
>>> ark_2 = arbetsbok ['Andra blad']
>>> # ändra bredden på en kolumn
>>> ark_2.column_dimensions ['A'].bredd = 50
>>> # Sparar arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

Ovanstående kod ändrar höjden på den första raden till 50 poäng och bredden på kolumn A till 50 poäng.

Sammanfoga och slå samman celler

När vi arbetar med Excel-kalkylblad behöver vi ofta slå samman och slå samman celler. För att slå samman celler i Python kan en enkel funktion baserad på openpyxl användas. Openpyxl-modulen erbjuder metoden merge_cells (), som kan användas för att slå samman celler i Excel. Den nya cellen tar namnet på den övre vänstra cellen. Om vi ​​till exempel vill slå samman cellerna från cell A1 till cell B2, kommer den nybildade cellen att kallas A1. För att slå samman celler med openpyxl väljer vi först arket och sedan använder vi metoden merge_cells () på arket.

>>> # importerar openpyxl-modulen
>>> importera openpyxl
>>> # laddar arbetsbok
>>> arbetsbok = openpyxl.load_workbook ('exempel.xlsx ')
>>> # välja första arket från Excel-arbetsboken
>>> sheet_1 = arbetsbok ['Första ark']
>>> # sammanfoga celler från A1 till B2 i ark 1
>>> ark_1.merge_cells ('A1: B2')
>>> # sparar arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

På samma sätt kan metoden unmerge_cells () användas för att slå samman celler i ett Excel-kalkylblad. Följande kod kan användas för att slå samman celler:

>>> # välja ark från arbetsbok
>>> sheet_1 = arbetsbok ['Första ark']
>>> # ungerging celler från A1 till B2
>>> ark_1.unmerge_cells ('A1: B2')
>>> # sparar arbetsbok
>>> arbetsbok.spara ('exempel.xlsx ')

Slutsats

Excel-kalkylblad används ofta för datamanipulation. Sådana uppgifter kan dock vara monotona. I sådana fall kan därför programmering användas för att automatisera kalkylarkmanipulation.

I den här artikeln diskuterade vi några av de användbara funktionerna i Pythons openpyxl-modul. Vi visade dig hur du skapar, läser, tar bort och modifierar Excel-kalkylblad, hur du ändrar stil, applicerar teckensnitt, ramar och dimensioner för celler och hur man slår samman och samman. Genom att använda dessa funktioner kan du automatisera många kalkylbladshanteringsuppgifter med Python.

OpenTTD vs Simutrans
Att skapa din egen transportsimulering kan vara rolig, avkopplande och extremt lockande. Det är därför du måste se till att du testar så många spel so...
OpenTTD-handledning
OpenTTD är ett av de mest populära affärssimuleringsspelen där ute. I det här spelet måste du skapa en underbar transportaffär. Du kommer dock att bör...
SuperTuxKart för Linux
SuperTuxKart är en fantastisk titel som är utformad för att ge dig Mario Kart-upplevelsen gratis på ditt Linux-system. Det är ganska utmanande och rol...