
Visualizar las líneas de tiempo de los proyectos es importante para una planificación y seguimiento efectivos. En esta publicación del blog, aprenderás cómo crear un diagrama de Gantt en Excel usando C#. Con solo unas pocas líneas de código, puedes automatizar la generación de diagramas de Gantt dinámicos y visualmente atractivos. Ya sea que estés construyendo una herramienta de gestión de proyectos o trabajando en informes internos, esta guía te mostrará cómo convertir los datos de tareas en una línea de tiempo clara y profesional—totalmente personalizable y lista para exportar a Excel, PDF o formatos de imagen. ¡Comencemos!
Este artículo cubre los siguientes temas:
- C# Biblioteca de Excel para Crear Diagramas de Gantt
- Cómo construir un diagrama de Gantt utilizando gráficos de barras apiladas
- Create a Gantt Chart in Excel using C#
- Personalizar el gráfico de Gantt en Excel usando C#
- Recursos gratuitos
Biblioteca de Excel en C# para crear gráficos de Gantt
Aspose.Cells for .NET es una poderosa biblioteca de Excel que simplifica el proceso de creación de gráficos de Gantt en Excel. Proporciona características robustas para manipular archivos de Excel programáticamente. Con Aspose.Cells, los desarrolladores pueden crear, modificar y personalizar gráficos y diagramas fácilmente. Esta biblioteca admite varios formatos de Excel y ofrece funcionalidades avanzadas, lo que la convierte en una opción ideal para gerentes de proyectos y desarrolladores por igual.
Aspose.Cells for .NET se destaca por su facilidad de integración y flexibilidad. Aquí hay algunas características clave:
- API integral: Acceda a una amplia gama de funcionalidades de Excel.
- Personalización Avanzada: Ajuste los gráficos y gráficos para satisfacer necesidades específicas.
- Alto rendimiento: Maneje grandes conjuntos de datos de manera eficiente sin comprometer la velocidad.
- Soporte de Múltiples Formatos: Trabaje con varios formatos de Excel, incluidos XLSX, XLS y CSV.
Siga estos simples pasos para comenzar con Aspose.Cells for .NET:
- Descarga la biblioteca desde el releases.
- Instálalo a través del Administrador de paquetes NuGet con el siguiente comando:
PM> Install-Package Aspose.Cells
Cómo construir un gráfico de Gantt utilizando gráficos de barras apiladas
Aspose.Cells no tiene un tipo de gráfico de Gantt incorporado porque Excel en sí mismo tampoco ofrece un tipo nativo de gráfico de Gantt. Sin embargo, los gráficos de Gantt en Excel generalmente se crean utilizando gráficos de barras apiladas combinados con formato personalizado, y Aspose.Cells admite ese enfoque programáticamente.
Lo que puedes hacer con Aspose.Cells:
Puedes automatizar la creación de un diagrama de Gantt en Excel mediante
- Configurando datos de la tarea (nombre de la tarea, fecha de inicio, duración).
- Agregando un gráfico de barras apiladas.
- Utilizando una serie para “offset de inicio” (oculto) y otra para “duración” (visible).
- Formateando el gráfico para que se asemeje a un gráfico de Gantt.
Datos de muestra del diagrama de Gantt
| Task | Start Date | Duration | Start Offset |
|--------|-------------|----------|--------------|
| 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 C#
Sigue estos pasos para crear un diagrama de Gantt en Excel utilizando C# con Aspose.Cells for .NET:
- Cargue un archivo de Excel existente utilizando la clase
Workbook
. - Acceda a la primera hoja de trabajo usando
workbook.Worksheets[0]
. - Agregar un gráfico usando
ChartType.BarStacked
para simular un diseño de gráfico de Gantt. - Agregar desplazamiento y duración como series.
- Establecer etiquetas de categoría utilizando la propiedad
CategoryData
. - Establecer estilos y configuraciones del eje.
- Guarda el libro usando
workbook.Save()
.
Aquí hay un fragmento de código C# que implementa los pasos anteriores:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Cargar el archivo de Excel
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Agregar diagrama de Gantt
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";
// Agregar desplazamiento y duración como series
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Establecer nombres de tareas como categorías
chart.NSeries.CategoryData = "A2:A6";
// Hacer las barras de desplazamiento invisibles
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Estilo de barras de duración
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;
// Configuración de ejes
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
// Ocultar leyenda
chart.ShowLegend = false;
// Redimensionar gráfico (opcional)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);

Create a Gantt Chart in Excel using C#
Personalizar el gráfico de Gantt en Excel usando C#
Puede mejorar su diagrama de Gantt utilizando las siguientes funciones de personalización en Aspose.Cells for .NET:
Colores de la barra Establecer un color sólido para las barras de duración:
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
Transparent Offsets Haz que las barras de desplazamiento (invisibles) sean completamente transparentes.
chart.NSeries[0].Area.Formatting = FormattingType.None;
Orden de Tarea Invertir el eje Y para mostrar las tareas de arriba hacia abajo:
chart.CategoryAxis.IsPlotOrderReversed = true;
Etiquetas de datos Mostrar la duración directamente en cada barra de tareas:
chart.NSeries[1].DataLabels.ShowValue = true;
Control de leyenda Eliminar o reposicionar la leyenda del gráfico.
chart.ShowLegend = false; // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
Estilo de Barra Individual Establecer colores personalizados para cada tarea.
var series = chart.NSeries[1]; series.Points[0].Area.ForegroundColor = Color.Green; series.Points[1].Area.ForegroundColor = Color.Red;
Dimensiones del gráfico Redimensionar y reposicionar el gráfico:
chart.ChartObject.Width = 700; chart.ChartObject.Height = 400;
Opciones de Exportación Guarde el gráfico en Excel, PDF o imagen.
workbook.Save("GanttChart.xlsx"); workbook.Save("GanttChart.pdf", SaveFormat.Pdf); chart.ToImage("chart.png", ImageFormat.Png);
Aquí hay un fragmento de código en C# que implementa algunas de las personalizaciones dadas anteriormente:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Inicializar libro de trabajo y hoja de trabajo
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";
// Muestra de Datos de Tareas con Fechas
DateTime projectStart = new DateTime(2025, 4, 1);
// Encabezados
sheet.Cells["A1"].PutValue("Task");
sheet.Cells["B1"].PutValue("Start Date");
sheet.Cells["C1"].PutValue("Duration (Days)");
sheet.Cells["D1"].PutValue("Start Offset");
sheet.Cells["E1"].PutValue("End Date");
// Data
string[,] 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" }
};
for (int i = 0; i < tasks.GetLength(0); i++)
{
int row = i + 1 + 1; // Start from row 2
sheet.Cells[row, 0].PutValue(tasks[i, 0]); // Task Name
sheet.Cells[row, 1].PutValue(DateTime.Parse(tasks[i, 1])); // Start Date
sheet.Cells[row, 2].PutValue(int.Parse(tasks[i, 2])); // Duration
// Offset: = FechaDeInicio - FechaDeInicioDelProyecto
sheet.Cells[row, 3].Formula = $"=B{row + 1} - DATE(2025,4,1)";
sheet.Cells[row, 4].Formula = $"=B{row + 1} + C{row + 1}";
}
// Autofit
sheet.AutoFitColumns();
// Add a chart
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";
// Añadir serie: Desplazamiento (invisible), Duración (visible)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Configurar etiquetas de categoría
chart.NSeries.CategoryData = "A2:A6";
// Hacer la serie de desplazamiento transparente
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Colorea cada barra de tareas de forma diferente.
Series durationSeries = chart.NSeries[1];
for (int i = 0; i < durationSeries.Points.Count; i++)
{
durationSeries.Points[i].Area.ForegroundColor = Color.FromArgb(255, 100 + i * 30, 150); // Gradient color variation
}
// Mostrar etiquetas de datos
chart.NSeries[1].DataLabels.ShowValue = true;
// Configuración del eje
chart.CategoryAxis.Title.Text = "Tasks";
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.ValueAxis.Title.Text = "Days from Project Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
chart.ValueAxis.MinValue = 0;
chart.ValueAxis.MajorUnit = 5;
// Eliminar leyenda
chart.ShowLegend = false;
// Redimensionar gráfico
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Exportar a Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);

Personalizar diagrama de Gantt en Excel usando C#
Obtén una licencia gratuita
¿Interesado en explorar los productos de Aspose? Visite la license page para obtener una licencia temporal gratuita. Es fácil comenzar y desbloquear todo el potencial de Aspose.Cells para sus proyectos.
Gráfico de Gantt Excel: Recursos gratuitos
¡No te detengas aquí! Explora recursos adicionales para mejorar aún más tu comprensión de Aspose.Cells. Estos recursos te ayudarán a dominar la automatización de Excel y a fortalecer tus habilidades.
Conclusión
En esta publicación del blog, exploramos cómo crear un diagrama de Gantt en Excel usando C#. Aspose.Cells for .NET simplifica este proceso con sus potentes características y flexibilidad. Te animamos a explorar más sobre Aspose.Cells for .NET para mejorar tus capacidades de gestión de proyectos.
Si tienes alguna pregunta o necesitas más ayuda, no dudes en ponerte en contacto en nuestro free support forum.