
A visualização de tarefas em uma linha do tempo ajuda a gerenciar projetos de forma mais eficaz. Neste artigo, você aprenderá como criar um gráfico de Gantt no Excel usando Python com Aspose.Cells for Python via .NET. Com apenas algumas linhas de código, você pode transformar dados simples de tarefas em uma linha do tempo visual dinâmica e limpa, ideal para relatórios, painéis e documentos de planejamento. Vamos percorrer isso passo a passo.
Este artigo aborda os seguintes tópicos:
- Biblioteca Python Excel para Gráficos de Gantt
- Gráfico de Gantt Usando Gráficos de Barras Empilhadas
- Create a Gantt Chart in Excel using Python
- Personalizar Gráfico de Gantt no Excel usando Python
- Explore Free Resources
Biblioteca Python Excel para Gráficos de Gantt
Aspose.Cells for Python via .NET é uma poderosa biblioteca para trabalhar com arquivos do Excel em Python. Ela permite que você crie, modifique e formate planilhas programaticamente—incluindo gráficos como gráficos de Gantt.
Recursos Principais:
- Controle total sobre gráficos e dados do Excel.
- Suporte para XLSX, XLS, CSV e PDF.
- Alto desempenho com arquivos grandes.
- Opções de personalização de gráficos ricos.
Para começar, instale a biblioteca com:
pip install aspose-cells
Você também pode baixá-lo da releases.
Gráficos de Gantt com Gráficos de Barras Empilhadas
O Excel não fornece um tipo de gráfico de Gantt embutido, e o mesmo se aplica ao Aspose.Cells. Mas você ainda pode criar um usando um gráfico de barras empilhadas com um pouco de formatação. Esta é uma técnica comum, e o Aspose.Cells a suporta totalmente através de código.
O que Você Pode Fazer com Aspose.Cells
Você pode facilmente automatizar um gráfico de Gantt no Excel fazendo o seguinte:
- Insira os dados da tarefa (nome da tarefa, data de início e duração).
- Inserir um gráfico de barras empilhadas.
- Use uma série para o “deslocamento inicial” (invisível) e outra para a “duração” (visível).
- Formate o gráfico para parecer um gráfico de Gantt.
Isso lhe dá uma linha do tempo com aparência profissional que você pode gerar dinamicamente.
Sample Task Data
Aqui está uma tabela de amostra que usaremos:
Tarefa | Data de Início | Duração | Deslocamento de Início |
---|---|---|---|
Task 1 | 2025-04-01 | 3 | 0 |
Task 2 | 2025-04-03 | 6 | 2 |
Task 3 | 2025-04-08 | 10 | 7 |
Task 4 | 2025-04-18 | 3 | 17 |
Task 5 | 2025-04-21 | 5 | 20 |
Create a Gantt Chart in Excel using Python
Siga estas etapas para criar um gráfico de Gantt no Excel usando Python com Aspose.Cells for Python via .NET:
- Carregue um arquivo de dados do Excel existente usando a classe
Workbook
. - Obtenha a primeira planilha com
workbook.worksheets[0]
. - Adicione um gráfico de barras empilhadas para adicionar um layout de gráfico de Gantt.
- Adicione duas séries de dados: uma para o deslocamento e uma para a duração.
- Defina nomes de tarefas como rótulos de categoria.
- Ajuste os estilos e as configurações do eixo para formatar o gráfico.
- Salve o arquivo usando o
workbook.save()
método.
Aqui está um trecho de código Python que executa todas essas etapas:
import aspose.cells as cells
from aspose.pydrawing import Color
# Carregue o arquivo Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)
# Adicionar Gráfico de Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"
# Adicione deslocamento e duração como série
chart.n_series.add("D2:D6", True) # Start Offset
chart.n_series.add("C2:C6", True) # Duration
# Defina os nomes das tarefas como categorias
chart.n_series.category_data = "A2:A6"
# Torne as barras de deslocamento invisíveis
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# Estilizar barras de duração
chart.n_series[1].area.formatting = cells.charts.FormattingType.CUSTOM
chart.n_series[1].area.foreground_color = Color.steel_blue
chart.n_series[1].data_labels.show_value = True
# Configurações do eixo
chart.category_axis.is_plot_order_reversed = True
chart.category_axis.title.text = "Tasks"
chart.value_axis.title.text = "Days from Start"
chart.value_axis.major_grid_lines.is_visible = True
# Esconder legenda
chart.show_legend = False
# Redimensionar gráfico (opcional)
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)
Isso gerará um gráfico estilo Gantt limpo com seus dados de tarefa.

Create a Gantt Chart in Excel using Python
Personalize o Gráfico de Gantt
Você pode personalizar seu gráfico de Gantt usando as seguintes opções disponíveis:
Cores da Barra
Defina uma cor sólida para as barras de duração:
chart.n_series[1].area.foreground_color = Color.steel_blue
Offsets Transparentes
Faça as barras de deslocamento (invisíveis) ficarem totalmente transparentes.
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
Task Order
Inverta o eixo Y para mostrar as tarefas de cima para baixo:
chart.category_axis.is_plot_order_reversed = True
Data Labels
Mostrar duração diretamente em cada barra de tarefas:
chart.n_series[1].data_labels.show_value = True
Controle de Legenda
Remova ou reposicione a legenda do gráfico.
chart.show_legend = False
# Or reposition:
chart.legend.position = cells.charts.LegendPositionType.BOTTOM
Definir Cores de Barra Personalizadas
chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red
Redimensionar o Gráfico
chart.chart_object.width = 700
chart.chart_object.height = 400
Exportar para PDF ou Imagem
workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")
O seguinte trecho de código Python aplica algumas das personalizações mencionadas acima:
import aspose.cells as cells
from aspose.pydrawing import Color
import datetime
# Inicializar pasta de trabalho e planilha
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"
# Data de início do projeto
project_start = datetime.date(2025, 4, 1)
# Headers
sheet.cells.get("A1").put_value("Task")
sheet.cells.get("B1").put_value("Start Date")
sheet.cells.get("C1").put_value("Duration (Days)")
sheet.cells.get("D1").put_value("Start Offset")
sheet.cells.get("E1").put_value("End Date")
# Dados da tarefa: [Nome da Tarefa, Data de Início, Duração]
tasks = [
["Task 1", "2025-04-01", "3"],
["Task 2", "2025-04-03", "6"],
["Task 3", "2025-04-08", "10"],
["Task 4", "2025-04-18", "3"],
["Task 5", "2025-04-21", "5"]
]
# Preencha os dados na planilha.
for i, task in enumerate(tasks):
row = i + 2 # Start from row 2
sheet.cells.get(row, 0).put_value(task[0]) # Task Name
sheet.cells.get(row, 1).put_value(datetime.datetime.strptime(task[1], "%Y-%m-%d").date()) # Start Date
sheet.cells.get(row, 2).put_value(int(task[2])) # Duration
# Fórmulas de Data de Offset e de Término
sheet.cells.get(row, 3).formula = f"=B{row + 1} - DATE(2025,4,1)" # Offset
sheet.cells.get(row, 4).formula = f"=B{row + 1} + C{row + 1}" # End Date
# Ajustar colunas automaticamente
sheet.auto_fit_columns()
# Adicionar gráfico de Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 10, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Project Gantt Chart"
# Adicionar série de dados: Deslocamento (invisível), Duração (visível)
chart.n_series.add("D2:D6", True) # Offset
chart.n_series.add("C2:C6", True) # Duration
# Defina os nomes das tarefas como rótulos de categoria
chart.n_series.category_data = "A2:A6"
# Faça as barras de deslocamento invisíveis
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# Colorir cada barra de tarefa de maneira diferente.
duration_series = chart.n_series[1]
for i in range(duration_series.points.count):
red = 100 + i * 30
duration_series.points[i].area.foreground_color = Color.from_argb(255, red, 150)
# Mostrar rótulos de dados nas barras de duração
duration_series.data_labels.show_value = True
# Configuração do eixo
chart.category_axis.title.text = "Tasks"
chart.category_axis.is_plot_order_reversed = True
chart.value_axis.title.text = "Days from Project Start"
chart.value_axis.major_grid_lines.is_visible = True
chart.value_axis.min_value = 0
chart.value_axis.major_unit = 5.0
# Ocultar legenda
chart.show_legend = False
# Redimensionar gráfico
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)

Personalizar Gráfico de Gantt no Excel usando Python
Obtenha uma Licença Gratuita
Você pode request a free temporary license para explorar todas as capacidades do Aspose.Cells sem quaisquer limitações ou marcas d’água.
Recursos Adicionais
Quer explorar mais? Os links abaixo o ajudarão a se aprofundar no Aspose.Cells for Python via .NET. Se você está procurando guias detalhados, referências da API ou ferramentas gratuitas, esses recursos têm o que você precisa.
Palavras Finais
Criar um gráfico de Gantt no Excel com Python é simples e eficaz usando Aspose.Cells for Python via .NET. Ele oferece controle total sobre o design do gráfico e automação do Excel. Experimente com os dados do seu projeto e veja a diferença.
Se você tiver alguma dúvida, sinta-se à vontade para nos contatar em nosso free support forum.