Skapa en pivottabell i Excel med Python

Pivottabeller i Excel-kalkylblad används för att sammanfatta data på ett interaktivt sätt. Anta att du har data från ett antal fakturor och du vill få deras totala grupperade efter kunder eller produkter. Pivottabellerna spelar in i sådana fall. I den här artikeln kommer du att lära dig hur du hanterar pivottabeller i Excel i Python. Särskilt kommer du att lära dig hur man skapar en pivottabell i Excel i Python. Dessutom kommer vi att visa hur man formaterar celler i Excel-pivottabellerna programmatiskt.

Python-bibliotek för att skapa pivottabell i Excel – gratis nedladdning

Aspose.Cells for Python är ett höghastighetsbibliotek som är designat för att skapa och bearbeta Excel-filer. Vi kommer att använda det här biblioteket för att skapa pivottabeller i Excel-kalkylblad.

Du kan ladda ner dess paket eller installera det från PyPI med följande pip-kommando.

pip install aspose-cells

Skapa en pivottabell i Excel i Python

Följande är stegen för att skapa en pivottabell i Excel med Python.

  • Skapa en ny eller ladda en befintlig Excel-fil med klassen Workbook.
  • Fyll kalkylbladet med data (valfritt).
  • Hämta insamling av pivottabeller till ett PivotTableCollection-objekt med metoden Worksheet.getPivotTables().
  • Lägg till en ny pivottabell med metoden PivotTableCollection.add(sträng, sträng, sträng) och få dess referens i ett objekt.
  • Ställ in alternativ som totalsumma, formatering, etc.
  • Lägg till fält i området med metoden PivotTable.addFieldToArea(int, int).
  • Spara arbetsboken med metoden Workbook.save(string).

Följande kodexempel visar hur man lägger till en pivottabell i Excel i Python.

import jpype
import asposecells

jpype.startJVM()
from asposecells.api import Workbook, PivotFieldType

# Instantiera ett arbetsboksobjekt
workbook = Workbook()

# Lägg till ett nytt kalkylblad och få dess referens
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)

# Hämta celler i kalkylbladet
cells = worksheet.getCells()

# Ställ in värdet på cellerna
cell = cells.get("A1")
cell.setValue("Sport")
cell = cells.get("B1")
cell.setValue("Quarter")
cell = cells.get("C1")
cell.setValue("Sales")

cell = cells.get("A2")
cell.setValue("Golf")
cell = cells.get("A3")
cell.setValue("Golf")
cell = cells.get("A4")
cell.setValue("Tennis")
cell = cells.get("A5")
cell.setValue("Tennis")
cell = cells.get("A6")
cell.setValue("Tennis")
cell = cells.get("A7")
cell.setValue("Tennis")
cell = cells.get("A8")
cell.setValue("Golf")

cell = cells.get("B2")
cell.setValue("Qtr3")
cell = cells.get("B3")
cell.setValue("Qtr4")
cell = cells.get("B4")
cell.setValue("Qtr3")
cell = cells.get("B5")
cell.setValue("Qtr4")
cell = cells.get("B6")
cell.setValue("Qtr3")
cell = cells.get("B7")
cell.setValue("Qtr4")
cell = cells.get("B8")
cell.setValue("Qtr3")

cell = cells.get("C2")
cell.setValue(1500)
cell = cells.get("C3")
cell.setValue(2000)
cell = cells.get("C4")
cell.setValue(600)
cell = cells.get("C5")
cell.setValue(1500)
cell = cells.get("C6")
cell.setValue(4070)
cell = cells.get("C7")
cell.setValue(5000)
cell = cells.get("C8")
cell.setValue(6430)

# Skaffa alla pivottabeller
pivotTables = worksheet.getPivotTables()

# Lägg till en ny pivottabell i kalkylbladet
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# Gå till instansen av den nyligen tillagda pivottabellen
pivotTable = pivotTables.get(index)

# Dölj totalsummor för rader
pivotTable.setRowGrand(False)

# Dra det första fältet till radområdet
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# Dra det andra fältet till kolumnområdet
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# Dra det tredje fältet till dataområdet
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# Spara Excel-filen
workbook.save("CreatePivotTable.xlsx")

Excel-data

Datakälla för excel-pivottabell

Pivottabell

skapa pivottabell i excel i java

Formatera celler i Excel-pivottabeller i Python

Följande är stegen för att formatera celler i Excel-pivottabeller i Python.

  • Skapa en ny eller ladda en befintlig Excel-fil med klassen Workbook.
  • Fyll i kalkylbladet (valfritt).
  • Få referens till kalkylbladet där pivottabellen finns.
  • Hämta referens till pivottabellen efter index med metoden Worksheet.getPivotTables().get(index).
  • Skapa ny stil med metoden Workbook.createStyle() och hämta dess referens.
  • Ställ in önskade egenskaper för stilobjekt.
  • Tilldela stilobjekt till pivottabellen.
  • Spara arbetsboken med metoden Workbook.save(string).

Följande kodexempel visar hur man formaterar en Excel-pivottabell i Python.

import jpype
import asposecells

jpype.startJVM()
from asposecells.api import Workbook, BackgroundType, Color

# Skapa arbetsboksobjekt från Excel-källfil som innehåller pivottabell
workbook = Workbook("pivotTable_test.xlsx")

# Öppna kalkylbladet med dess namn
worksheet = workbook.getWorksheets().get("PivotTable")

# Få åtkomst till pivottabellen efter index
pivotTable = worksheet.getPivotTables().get(0)

# Skapa ett stilobjekt med bakgrundsfärg ljusblå
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())

# Formatera hela pivottabellen med ljusblå färg
pivotTable.formatAll(style)

# Skapa ytterligare ett stilobjekt med gul färg
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())

# Formatera cellerna i den första raden i pivottabellen med gul färg
columns = [0, 1, 2, 3, 4]
for x in columns:
  pivotTable.format(1, x, style)

# Spara arbetsboksobjektet
workbook.save("output.xlsx")

Python-bibliotek för att skapa Excel-pivottabeller - Skaffa en gratis licens

Du kan få en gratis tillfällig licens för att använda Aspose.Cells för Python utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har du lärt dig hur du skapar en pivottabell i Excel-ark i Python. Vidare har du sett hur man formaterar celler i pivottabeller i Excel programmatiskt. Dessutom kan du utforska mer om Python Excel-biblioteket med hjälp av dokumentation. Om du har några frågor är du välkommen att meddela oss via vårt forum.

Se även