Visualizar cronogramas de projetos ajuda as equipes a permanecer alinhadas e cumprir prazos. Conholdate.Total for Java fornece um SDK robusto que facilita a criação de um Gráfico de Gantt em Java com apenas algumas linhas de código. Neste guia, você verá como configurar a biblioteca, preencher os dados das tarefas em uma planilha, transformar um gráfico de barras empilhadas em uma linha do tempo no estilo Gantt e exportar o resultado para o Excel.

Configurando Conholdate.Total para Java

Antes de começar a programar, certifique‑se de que você tem o Java 17 ou superior e um IDE compatível com Maven. Adicione o repositório Maven da Conholdate e a dependência SDK ao seu pom.xml:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>
<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

Você também pode baixar os JARs mais recentes diretamente da página de download. Depois que o SDK estiver no seu classpath, você está pronto para começar a criar o gráfico.

Construindo passo a passo: criar gráfico de Gantt em Java

Etapa 1: Crie a Pasta de Trabalho e Preencha os Dados da Tarefa

Um gráfico de Gantt construído dessa forma é realmente um gráfico de barras empilhadas sobre os dados da planilha, portanto o primeiro passo é criar o Workbook, obter a primeira Worksheet e preencher os nomes das tarefas, os deslocamentos de início e as durações que o gráfico lerá.

com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook();
com.aspose.cells.Worksheet sheet = workbook.getWorksheets().get(0);

com.aspose.cells.Cells cells = sheet.getCells();
cells.get("A1").putValue("Task");
cells.get("C1").putValue("Duration (Days)");
cells.get("D1").putValue("Start Offset (Days)");

cells.get("A2").putValue("Requirement Analysis");
cells.get("C2").putValue(5);
cells.get("D2").putValue(0);

cells.get("A3").putValue("Design");
cells.get("C3").putValue(7);
cells.get("D3").putValue(5);

cells.get("A4").putValue("Implementation");
cells.get("C4").putValue(24);
cells.get("D4").putValue(12);

cells.get("A5").putValue("Testing");
cells.get("C5").putValue(15);
cells.get("D5").putValue(36);

cells.get("A6").putValue("Deployment");
cells.get("C6").putValue(2);
cells.get("D6").putValue(51);

Coluna A contém o nome da tarefa, a coluna C contém quantos dias cada tarefa leva e a coluna D contém quantos dias após o início do projeto cada tarefa começa. As duas séries do gráfico (deslocamento de início e duração) são lidas diretamente das colunas D e C.

Etapa 2: Adicionar um Gráfico de Barras Empilhadas e Configurar as Séries

Com os dados em vigor, adicione um gráfico BAR_STACKED à planilha e configure suas séries. A série de deslocamento inicial empurra cada barra de tarefa para a direita; a série de duração desenha a barra de tarefa visível sobre ela.

int chartIndex = sheet.getCharts().add(com.aspose.cells.ChartType.BAR_STACKED, 7, 0, 30, 10);
com.aspose.cells.Chart chart = sheet.getCharts().get(chartIndex);
chart.getTitle().setText("Gantt Chart");

// Add offset and duration as series
chart.getNSeries().add("D2:D6", true); // Start Offset
chart.getNSeries().add("C2:C6", true); // Duration

// Set task names as categories
chart.getNSeries().setCategoryData("A2:A6");

O gráfico está ancorado na planilha na linha 7, coluna 0, e abrange 30 linhas por 10 colunas.

Etapa 3: Estilizar o Gráfico para Parecer um Diagrama de Gantt

O truque para que um gráfico de barras empilhadas seja interpretado como um gráfico de Gantt é tornar a série de deslocamento invisível, de modo que apenas as barras de duração sejam exibidas, flutuando na posição inicial correta.

// Make offset bars invisible
chart.getNSeries().get(0).getArea().setFormatting(com.aspose.cells.FormattingType.NONE);

// Style duration bars
chart.getNSeries().get(1).getArea().setFormatting(com.aspose.cells.FormattingType.CUSTOM);
chart.getNSeries().get(1).getArea().setForegroundColor(com.aspose.cells.Color.getSteelBlue());
chart.getNSeries().get(1).getDataLabels().setShowValue(true);

Etapa 4: Configurar Eixos, Legenda e Tamanho

Inverta o eixo de categorias para que a primeira tarefa apareça no topo, rotule ambos os eixos e desative a legenda, pois há apenas uma série significativa para ler.

// Axis settings
chart.getCategoryAxis().setPlotOrderReversed(true);
chart.getCategoryAxis().getTitle().setText("Tasks");
chart.getValueAxis().getTitle().setText("Days from Start");
chart.getValueAxis().getMajorGridLines().setVisible(true);

// Hide legend
chart.setShowLegend(false);

// Resize chart
chart.getChartObject().setWidth(700);
chart.getChartObject().setHeight(400);

Etapa 5: Salvar a Pasta de Trabalho

Finalmente, salve a pasta de trabalho. O SDK oferece suporte a XLSX, XLS e outros formatos listados no enum SaveFormat.

// Save the result
workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);

Abra GanttChartResult.xlsx no Excel (ou em qualquer aplicativo de planilha compatível) para ver o gráfico de Gantt final incorporado na planilha.

Exemplo de Código Completo: Exemplo de Gráfico de Gantt em Java

O exemplo a seguir demonstra como criar um Gráfico de Gantt em Java do início ao fim.

public class GanttChartDemo {
    public static void main(String[] args) {
        // Create the workbook and get the first worksheet
        com.aspose.cells.Workbook workbook = new com.aspose.cells.Workbook();
        com.aspose.cells.Worksheet sheet = workbook.getWorksheets().get(0);

// Populate task names, durations, and start offsets
        com.aspose.cells.Cells cells = sheet.getCells();
        cells.get("A1").putValue("Task");
        cells.get("C1").putValue("Duration (Days)");
        cells.get("D1").putValue("Start Offset (Days)");

cells.get("A2").putValue("Requirement Analysis");
        cells.get("C2").putValue(5);
        cells.get("D2").putValue(0);

cells.get("A3").putValue("Design");
        cells.get("C3").putValue(7);
        cells.get("D3").putValue(5);

cells.get("A4").putValue("Implementation");
        cells.get("C4").putValue(24);
        cells.get("D4").putValue(12);

cells.get("A5").putValue("Testing");
        cells.get("C5").putValue(15);
        cells.get("D5").putValue(36);

cells.get("A6").putValue("Deployment");
        cells.get("C6").putValue(2);
        cells.get("D6").putValue(51);

// Add a stacked bar chart that will act as the Gantt chart
        int chartIndex = sheet.getCharts().add(com.aspose.cells.ChartType.BAR_STACKED, 7, 0, 30, 10);
        com.aspose.cells.Chart chart = sheet.getCharts().get(chartIndex);
        chart.getTitle().setText("Gantt Chart");

// Add offset and duration as series
        chart.getNSeries().add("D2:D6", true); // Start Offset
        chart.getNSeries().add("C2:C6", true); // Duration

// Set task names as categories
        chart.getNSeries().setCategoryData("A2:A6");

// Make offset bars invisible
        chart.getNSeries().get(0).getArea().setFormatting(com.aspose.cells.FormattingType.NONE);

// Style duration bars
        chart.getNSeries().get(1).getArea().setFormatting(com.aspose.cells.FormattingType.CUSTOM);
        chart.getNSeries().get(1).getArea().setForegroundColor(com.aspose.cells.Color.getSteelBlue());
        chart.getNSeries().get(1).getDataLabels().setShowValue(true);

// Axis settings
        chart.getCategoryAxis().setPlotOrderReversed(true);
        chart.getCategoryAxis().getTitle().setText("Tasks");
        chart.getValueAxis().getTitle().setText("Days from Start");
        chart.getValueAxis().getMajorGridLines().setVisible(true);

// Hide legend
        chart.setShowLegend(false);

// Resize chart
        chart.getChartObject().setWidth(700);
        chart.getChartObject().setHeight(400);

// Save the result
        workbook.save("GanttChartResult.xlsx", com.aspose.cells.SaveFormat.XLSX);
    }
}

Nota: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.

Conclusão

Criar um Gráfico de Gantt em Java torna‑se simples com Conholdate.Total for Java. Ao preencher os dados das tarefas em uma planilha, adicionar um gráfico de barras empilhadas e estilizar suas séries e eixos, você pode gerar cronogramas com aparência profissional que ficam dentro de um arquivo Excel. Ocultar a série de deslocamento inicial enquanto estiliza a série de duração é a técnica chave que transforma um gráfico de barras empilhadas comum em um gráfico de Gantt. Lembre‑se de que uma licença comercial é necessária para implantações em produção; você pode obter uma licença temporária na página de licença temporária ou explorar detalhes de preços na página de preços. Comece a integrar gráficos de Gantt em suas aplicações hoje e mantenha suas partes interessadas informadas com cronogramas visuais claros.

Perguntas Frequentes

Como criar um Diagrama de Gantt em Java usando Conholdate.Total?
Crie um Workbook, adicione um gráfico BAR_STACKED a uma planilha e adicione duas séries: uma série de deslocamento inicial oculta e uma série de duração visível. Defina os nomes das tarefas como dados de categoria, estilize a série visível e salve a planilha. O trecho completo de código é fornecido neste artigo.

Posso exportar o gráfico de Gantt para formatos diferentes de Excel?

Sim. Como o gráfico está incorporado em uma planilha, você pode salvar o arquivo usando qualquer valor do enum SaveFormat, como XLSX, XLS ou ODS. Consulte a documentação oficial para a lista completa.

Qual licença é necessária para uso em produção?
Uma licença comercial é obrigatória. Você pode solicitar uma licença temporária na página de licença temporária e revisar os preços na página de preços.

Como posso melhorar o desempenho de grandes diagramas de Gantt?
Mantenha o intervalo de dados referenciado por cada série o mais restrito possível, evite recalculações desnecessárias da planilha e limite as chamadas de formatação às séries e eixos que realmente precisa. Manter um número razoável de tarefas por gráfico também garante uma renderização rápida em arquivos de projeto grandes.

Leia Mais