Criar uma tabela dinâmica no Excel usando Python

As tabelas dinâmicas em planilhas do Excel são usadas para resumir os dados de forma interativa. Suponha que você tenha os dados de várias faturas e queira obter o total delas agrupado por clientes ou produtos. As tabelas dinâmicas entram em jogo nesses casos. Neste artigo, você aprenderá como lidar com tabelas dinâmicas no Excel em Python. Particularmente, você saberá como criar uma tabela dinâmica no Excel em Python. Além disso, demonstraremos como formatar células nas tabelas dinâmicas do Excel programaticamente.

Biblioteca Python para criar tabela dinâmica no Excel - Download gratuito

Aspose.Cells for Python é uma biblioteca de alta velocidade, projetada para criar e processar arquivos do Excel. Usaremos esta biblioteca para criar tabelas dinâmicas em planilhas do Excel.

Você pode baixar seu pacote ou instalá-lo de PyPI usando o seguinte comando pip.

pip install aspose-cells

Criar uma tabela dinâmica no Excel em Python

A seguir estão as etapas para criar uma tabela dinâmica no Excel usando Python.

  • Crie um novo arquivo do Excel ou carregue um existente usando a classe Workbook.
  • Preencha a planilha com dados (opcional).
  • Obtenha uma coleção de tabelas dinâmicas em um objeto PivotTableCollection usando o método Worksheet.getPivotTables().
  • Adicione uma nova tabela dinâmica usando o método PivotTableCollection.add(string, string, string) e obtenha sua referência em um objeto.
  • Defina opções como total geral, formatação, etc.
  • Adicione campos à área usando o método PivotTable.addFieldToArea(int, int).
  • Salve a pasta de trabalho usando o método Workbook.save(string).

O exemplo de código a seguir mostra como adicionar uma tabela dinâmica no Excel em Python.

import jpype
import asposecells

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

# Instanciar um objeto Workbook
workbook = Workbook()

# Adicione uma nova planilha e obtenha sua referência
sheetIndex = workbook.getWorksheets().add()
worksheet = workbook.getWorksheets().get(sheetIndex)

# Obter células da planilha
cells = worksheet.getCells()

# Defina o valor para as células
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)

# Obter todas as tabelas dinâmicas
pivotTables = worksheet.getPivotTables()

# Adicionar uma nova tabela dinâmica à planilha
index = pivotTables.add("=A1:C8", "E3", "PivotTable2")

# Acesse a instância da tabela dinâmica recém-adicionada
pivotTable = pivotTables.get(index)

# Ocultar totais gerais para linhas
pivotTable.setRowGrand(False)

# Arraste o primeiro campo para a área da linha
pivotTable.addFieldToArea(PivotFieldType.ROW, 0)

# Arraste o segundo campo para a área da coluna
pivotTable.addFieldToArea(PivotFieldType.COLUMN, 1)

# Arraste o terceiro campo para a área de dados
pivotTable.addFieldToArea(PivotFieldType.DATA, 2)

# Salve o arquivo Excel
workbook.save("CreatePivotTable.xlsx")

Dados do Excel

Fonte de dados para tabela dinâmica do Excel

Tabela Dinâmica

criar tabela dinâmica no excel em java

Formatar células em tabelas dinâmicas do Excel em Python

A seguir estão as etapas para formatar células em tabelas dinâmicas do Excel em Python.

  • Crie um novo arquivo do Excel ou carregue um existente usando a classe Workbook.
  • Preencha a planilha (opcional).
  • Obtenha a referência da planilha onde a tabela dinâmica está localizada.
  • Obtenha a referência da tabela dinâmica por índice usando o método Worksheet.getPivotTables().get(index).
  • Crie um novo estilo usando o método Workbook.createStyle() e obtenha sua referência.
  • Defina as propriedades desejadas do objeto Style.
  • Atribua o objeto Style à tabela dinâmica.
  • Salve a pasta de trabalho usando o método Workbook.save(string).

O exemplo de código a seguir mostra como formatar uma tabela dinâmica do Excel em Python.

import jpype
import asposecells

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

# Criar objeto de pasta de trabalho a partir do arquivo Excel de origem que contém a tabela dinâmica
workbook = Workbook("pivotTable_test.xlsx")

# Acesse a planilha pelo nome
worksheet = workbook.getWorksheets().get("PivotTable")

# Acesse a tabela dinâmica por índice
pivotTable = worksheet.getPivotTables().get(0)

# Crie um objeto de estilo com a cor de fundo azul claro
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getLightBlue())

# Formate toda a tabela dinâmica com a cor azul claro
pivotTable.formatAll(style)

# Crie outro objeto de estilo com a cor amarela
style = workbook.createStyle()
style.setPattern(BackgroundType.SOLID)
style.setBackgroundColor(Color.getYellow())

# Formate as células da primeira linha da tabela dinâmica com a cor amarela
columns = [0, 1, 2, 3, 4]
for x in columns:
  pivotTable.format(1, x, style)

# Salve o objeto de pasta de trabalho
workbook.save("output.xlsx")

Biblioteca Python para criar tabelas dinâmicas do Excel - Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para usar o Aspose.Cells for Python sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como criar uma tabela dinâmica em planilhas do Excel em Python. Além disso, você viu como formatar células em tabelas dinâmicas no Excel programaticamente. Além disso, você pode explorar mais sobre a biblioteca Python Excel usando documentação. Caso você tenha alguma dúvida, sinta-se à vontade para nos informar através do nosso fórum.

Veja também