Створити діаграму Ганта в Excel за допомогою C#

Візуалізація графіків проектів є важливою для ефективного планування та відстеження. У цьому блозі ви дізнаєтеся, як створити діаграму Ганта в Excel за допомогою C#. З всього кількох рядків коду ви можете автоматизувати генерацію динамічних, візуально привабливих діаграм Ганта. Незалежно від того, чи ви створюєте інструмент управління проектами або працюєте над внутрішнім звітуванням, цей посібник покаже вам, як перетворити дані завдань на зрозумілу та професійну шкалу часу — повністю настроювану та готову для експорту в Excel, PDF або формати зображень. Почнемо!

Ця стаття охоплює такі теми:

C# Excel бібліотека для створення діаграм Ганта

Aspose.Cells for .NET є потужною бібліотекою Excel, яка спрощує процес створення діаграм Ганта в Excel. Вона забезпечує надійні функції для програмного маніпулювання файлами Excel. З Aspose.Cells розробники можуть легко створювати, змінювати та налаштовувати діаграми та графіки. Ця бібліотека підтримує різні формати Excel і пропонує розширені функціональні можливості, що робить її ідеальним вибором для менеджерів проектів і розробників.

Aspose.Cells for .NET вирізняється своєю простотою інтеграції та гнучкістю. Ось деякі ключові особливості:

  • Всеосяжний API: Отримайте доступ до широкого спектру функцій Excel.
  • Розширене налаштування: Налаштуйте діаграми та графіки відповідно до специфічних потреб.
  • Висока продуктивність: Ефективно обробляйте великі набори даних без компромісів у швидкості.
  • Підтримка кількох форматів: Працюйте з різними форматами Excel, включаючи XLSX, XLS та CSV.

Слідкуйте за цими простими кроками, щоб почати працювати з Aspose.Cells for .NET:

  1. Завантажте бібліотеку з releases.
  2. Встановіть його через диспетчер пакетів NuGet за допомогою наступної команди:
    PM> Install-Package Aspose.Cells
    

Як побудувати діаграму Ганта, використовуючи розгорнуті стовпчикові діаграми

Aspose.Cells не має вбудованого типу діаграм Гantt, оскільки Excel сам по собі також не пропонує рідного типу діаграм Гantt. Однак діаграми Гantt в Excel зазвичай створюються за допомогою комбінованих стовпчикових діаграм з користувацьким форматуванням — і Aspose.Cells підтримує цей підхід програмно.

Що ви можете зробити з Aspose.Cells:

Ви можете автоматизувати створення діаграми Гантта в Excel, виконавши

  • Налаштування даних завдання (назва завдання, дата початку, тривалість).
  • Додавання комбінованої стовпчикової діаграми.
  • Використовуючи одну серію для “стартового зсуву” (приховане) та іншу для “тривалості” (видиме).
  • Форматування діаграми, щоб вона нагадувала діаграму Ганта.

Дані вибірки діаграми Ганта


| 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#

Слідуйте цим крокам, щоб створити діаграму Ганта в Excel, використовуючи C# з Aspose.Cells for .NET:

  1. Завантажте існуючий файл Excel, використовуючи клас Workbook.
  2. Отримайте доступ до першого аркуша за допомогою workbook.Worksheets[0].
  3. Додайте графік, використовуючи ChartType.BarStacked, щоб змоделювати макет діаграми Ганта.
  4. Додайте зсув та тривалість як серії.
  5. Встановіть категорії міток, використовуючи властивість CategoryData.
  6. Встановіть стилі та налаштування осей.
  7. Збережіть книгу, використовуючи workbook.Save().

Ось фрагмент коду C#, який реалізує вищезгадані кроки:

using Aspose.Cells;
using Aspose.Cells.Charts;

// Завантажте файл Excel
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];

// Додати діаграму Ганта
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";

// Додати зсув і тривалість як серії
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Встановіть назви завдань як категорії
chart.NSeries.CategoryData = "A2:A6";

// Приховати відступні стовпці
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Стиль тривалості графіків
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;

// Налаштування осей
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;

// Сховати легенду
chart.ShowLegend = false;

// Змінити розмір діаграми (необов'язково)
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#

Create a Gantt Chart in Excel using C#

Налаштуйте діаграму Ганта в Excel за допомогою C#

Ви можете покращити свою діаграму Ганта, використовуючи наступні функції налаштування в Aspose.Cells for .NET:

  • Bar Colors Встановіть одноколірний фон для смуг тривалості:

    chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
    
  • Прозорі зміщення Зробіть невидимі смуги (offset) повністю прозорими.

    chart.NSeries[0].Area.Formatting = FormattingType.None;
    
  • Task Order Реверсуйте вісь Y, щоб показати завдання зверху вниз:

    chart.CategoryAxis.IsPlotOrderReversed = true;
    
  • Мітки даних Показати тривалість безпосередньо на кожній панелі завдань:

    chart.NSeries[1].DataLabels.ShowValue = true;
    
  • Legend Control Видаліть або перемістіть легенду діаграми.

    chart.ShowLegend = false;
    // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
    
  • Індивідуальне стилювання панелі Встановіть користувацькі кольори для кожного завдання.

    var series = chart.NSeries[1];
    series.Points[0].Area.ForegroundColor = Color.Green;
    series.Points[1].Area.ForegroundColor = Color.Red;
    
  • Розміри діаграми Змініть розмір і перемістіть діаграму:

    chart.ChartObject.Width = 700;
    chart.ChartObject.Height = 400;
    
  • Експортні параметри Збережіть діаграму в Excel, PDF або зображення.

    workbook.Save("GanttChart.xlsx");
    workbook.Save("GanttChart.pdf", SaveFormat.Pdf);
    chart.ToImage("chart.png", ImageFormat.Png);
    

Ось фрагмент коду C#, який реалізує деякі з перерахованих вище налаштувань:

using Aspose.Cells;
using Aspose.Cells.Charts;

// Ініціалізувати книгу і аркуш роботи
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";

// Sample Task Data with Dates
DateTime projectStart = new DateTime(2025, 4, 1);

// Headers
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: = Дата початку - Дата початку проекту
    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();

// Додати діаграму
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";

// Додати Серії: Офсет (невидимий), Тривалість (видима)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration

// Встановити мітки категорій
chart.NSeries.CategoryData = "A2:A6";

// Зробіть серію Offset прозорою
chart.NSeries[0].Area.Formatting = FormattingType.None;

// Розфарбуйте кожну панель завдання по-різному.
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
}

// Показати етикетки даних
chart.NSeries[1].DataLabels.ShowValue = true;


// Налаштування осі
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;

// Прибрати легенду
chart.ShowLegend = false;

// Змінити розмір діаграми
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;

// Експорт в Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);
Налаштування діаграми Ганта в Excel за допомогою C#

Налаштування діаграми Ганта в Excel за допомогою C#

Отримайте безкоштовну ліцензію

Цікавитесь дослідженням продуктів Aspose? Відвідайте license page, щоб отримати безкоштовну тимчасову ліцензію. Легко почати та розкрити весь потенціал Aspose.Cells для ваших проектів!

Gantt Chart Excel: Безкоштовні ресурси

Не зупиняйтеся тут! Огляньте додаткові ресурси, щоб ще більше поглибити своє розуміння Aspose.Cells. Ці ресурси допоможуть вам опанувати автоматизацію Excel і зміцнити ваші навички.

Висновок

В цьому блозі ми дослідили, як створити діаграму Ганта в Excel, використовуючи C#. Aspose.Cells for .NET спрощує цей процес завдяки своїм потужним функціям та гнучкості. Ми закликаємо вас дізнатися більше про Aspose.Cells for .NET, щоб покращити ваші можливості керування проектами.

Якщо у вас є які-небудь запитання або вам потрібна подальша допомога, будь ласка, не соромтеся звертатися на наш безкоштовний форум підтримки.

Дивіться також