Crear una tabla dinámica en Excel usando Python

Las tablas dinámicas en las hojas de cálculo de Excel se utilizan para resumir los datos de forma interactiva. Supongamos que tiene los datos de varias facturas y desea obtener su total agrupado por clientes o productos. Las tablas dinámicas entran en juego en estos casos. En este artículo, aprenderá cómo manejar tablas dinámicas en Excel en Python. En particular, llegará a saber cómo crear una tabla dinámica en Excel en Python. Además, demostraremos cómo formatear celdas en las tablas dinámicas de Excel mediante programación.

Biblioteca de Python para crear tablas dinámicas en Excel - Descarga gratuita

Aspose.Cells for Python es una biblioteca de alta velocidad diseñada para crear y procesar archivos de Excel. Usaremos esta biblioteca para crear tablas dinámicas en hojas de cálculo de Excel.

Puede descargar su paquete o instalarlo desde PyPI usando el siguiente comando pip.

pip install aspose-cells

Crear una tabla dinámica en Excel en Python

Los siguientes son los pasos para crear una tabla dinámica en Excel usando Python.

  • Cree un archivo de Excel nuevo o cargue uno existente usando la clase Workbook.
  • Rellene la hoja de cálculo con datos (opcional).
  • Obtenga una colección de tablas dinámicas en un objeto PivotTableCollection usando el método Worksheet.getPivotTables().
  • Agregue una nueva tabla dinámica usando el método PivotTableCollection.add(string, string, string) y obtenga su referencia en un objeto.
  • Establezca opciones como total general, formato, etc.
  • Agregue campos al área mediante el método PivotTable.addFieldToArea(int, int).
  • Guarde el libro de trabajo usando el método Workbook.save(string).

El siguiente ejemplo de código muestra cómo agregar una tabla dinámica en Excel en Python.

import jpype
import asposecells

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

# Crear una instancia de un objeto Workbook
workbook = Workbook()

# Añadir una nueva hoja de cálculo y obtener su referencia
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)

# Obtener celdas de la hoja de trabajo
cells = worksheet.getCells()

# Establecer el valor de las celdas
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)

# Obtener todas las tablas dinámicas
pivotTables = worksheet.getPivotTables()

# Agregar una nueva tabla dinámica a la hoja de trabajo
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# Acceda a la instancia de la tabla dinámica recién agregada
pivotTable = pivotTables.get(index)

# Ocultar totales generales para filas
pivotTable.setRowGrand(False)

# Arrastre el primer campo al área de la fila
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# Arrastre el segundo campo al área de la columna
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# Arrastre el tercer campo al área de datos
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# Guarde el archivo de Excel
workbook.save("CreatePivotTable.xlsx")

Datos de Excel

Fuente de datos para la tabla dinámica de Excel

Tabla dinámica

crear tabla dinámica en excel en java

Formato de celdas en tablas dinámicas de Excel en Python

Los siguientes son los pasos para formatear celdas en tablas dinámicas de Excel en Python.

  • Cree un archivo de Excel nuevo o cargue uno existente usando la clase Workbook.
  • Complete la hoja de trabajo (opcional).
  • Obtenga la referencia de la hoja de trabajo donde se encuentra la tabla dinámica.
  • Obtenga la referencia de la tabla dinámica por índice usando el método Worksheet.getPivotTables().get(index).
  • Cree un nuevo estilo usando el método Workbook.createStyle() y obtenga su referencia.
  • Establezca las propiedades deseadas del objeto Style.
  • Asigne el objeto Estilo a la tabla dinámica.
  • Guarde el libro de trabajo usando el método Workbook.save(string).

El siguiente ejemplo de código muestra cómo dar formato a una tabla dinámica de Excel en Python.

import jpype
import asposecells

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

# Cree un objeto de libro de trabajo a partir de un archivo de origen de Excel que contenga una tabla dinámica
workbook = Workbook("pivotTable_test.xlsx")

# Accede a la hoja de trabajo por su nombre
worksheet = workbook.getWorksheets().get("PivotTable")

# Accede a la tabla dinámica por índice
pivotTable = worksheet.getPivotTables().get(0)

# Cree un objeto de estilo con color de fondo azul claro
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())

# Dar formato a toda la tabla dinámica con color azul claro
pivotTable.formatAll(style)

# Crea otro objeto de estilo con color amarillo.
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())

# Formatee las celdas de la primera fila de la tabla dinámica con color amarillo
columns = [0, 1, 2, 3, 4]
for x in columns:
  pivotTable.format(1, x, style)

# Guardar el objeto del libro de trabajo
workbook.save("output.xlsx")

Biblioteca de Python para crear tablas dinámicas de Excel: obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para usar Aspose.Cells for Python sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a crear una tabla dinámica en hojas de Excel en Python. Además, ha visto cómo formatear celdas en tablas dinámicas en Excel mediante programación. Además, puede explorar más sobre la biblioteca de Python Excel usando documentación. En caso de que tenga alguna pregunta, no dude en hacérnosla saber a través de nuestro foro.

Ver también