
Hình dung các dòng thời gian dự án là rất quan trọng cho việc lập kế hoạch và theo dõi hiệu quả. Trong bài viết trên blog này, bạn sẽ học cách tạo biểu đồ Gantt trong Excel bằng cách sử dụng C#. Chỉ với một vài dòng mã, bạn có thể tự động hóa việc tạo ra các biểu đồ Gantt động, hấp dẫn về mặt hình ảnh. Dù bạn đang xây dựng công cụ quản lý dự án hay làm việc trên báo cáo nội bộ, hướng dẫn này sẽ cho bạn thấy cách biến dữ liệu nhiệm vụ thành một dòng thời gian rõ ràng và chuyên nghiệp—hoàn toàn tùy biến và sẵn sàng để xuất ra Excel, PDF, hoặc các định dạng hình ảnh. Hãy bắt đầu nào!
Bài viết này đề cập đến các chủ đề sau:
- Thư viện C# Excel để tạo biểu đồ Gantt
- Cách tạo biểu đồ Gantt bằng cách sử dụng biểu đồ cột chồng thêm
- Tạo biểu đồ Gantt trong Excel bằng cách sử dụng C#
- Tùy chỉnh biểu đồ Gantt trong Excel bằng C#
- Tài nguyên miễn phí
Thư viện C# Excel để tạo biểu đồ Gantt
Aspose.Cells for .NET là một thư viện Excel mạnh mẽ giúp đơn giản hóa quy trình tạo biểu đồ Gantt trong Excel. Nó cung cấp các tính năng mạnh mẽ để thao tác với các tệp Excel một cách lập trình. Với Aspose.Cells, các nhà phát triển có thể dễ dàng tạo, chỉnh sửa và tùy chỉnh các biểu đồ và đồ thị. Thư viện này hỗ trợ nhiều định dạng Excel khác nhau và cung cấp các chức năng nâng cao, khiến nó trở thành lựa chọn lý tưởng cho các nhà quản lý dự án và các nhà phát triển.
Aspose.Cells for .NET nổi bật nhờ vào khả năng tích hợp dễ dàng và linh hoạt. Dưới đây là một số tính năng chính:
- API toàn diện: Truy cập vào một loạt các chức năng của Excel.
- Tùy chỉnh nâng cao: Tùy chỉnh biểu đồ và đồ thị để đáp ứng nhu cầu cụ thể.
- Hiệu suất cao: Xử lý hiệu quả các tập dữ liệu lớn mà không làm giảm tốc độ.
- Hỗ trợ định dạng đa dạng: Làm việc với nhiều định dạng Excel, bao gồm XLSX, XLS và CSV.
Theo những bước đơn giản sau để bắt đầu với Aspose.Cells for .NET:
- Tải thư viện từ releases.
- Cài đặt nó thông qua Trình quản lý Gói NuGet với lệnh sau:
PM> Install-Package Aspose.Cells
Cách tạo biểu đồ Gantt bằng cách sử dụng biểu đồ cột chồng.
Aspose.Cells không có loại biểu đồ Gantt tích hợp sẵn vì Excel cũng không cung cấp loại biểu đồ Gantt gốc. Tuy nhiên, biểu đồ Gantt trong Excel thường được tạo ra bằng cách sử dụng biểu đồ cột chồng kết hợp với định dạng tùy chỉnh — và Aspose.Cells hỗ trợ cách tiếp cận đó một cách lập trình.
Những gì bạn có thể làm với Aspose.Cells:
Bạn có thể tự động hóa việc tạo biểu đồ Gantt trong Excel bằng cách
- Cài đặt dữ liệu nhiệm vụ (tên nhiệm vụ, ngày bắt đầu, thời gian).
- Thêm biểu đồ cột xếp chồng.
- Sử dụng một chuỗi cho “start offset” (ẩn) và một chuỗi khác cho “duration” (hiển thị).
- Định dạng biểu đồ sao cho giống như biểu đồ Gantt.
Dữ liệu mẫu biểu đồ 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 |
Tạo biểu đồ Gantt trong Excel bằng cách sử dụng C#
Theo dõi các bước sau để tạo biểu đồ Gantt trong Excel bằng C# với Aspose.Cells for .NET:
- Tải một tệp Excel hiện có bằng cách sử dụng lớp
Workbook
. - Truy cập bảng tính đầu tiên bằng cách sử dụng
workbook.Worksheets[0]
. - Thêm một biểu đồ sử dụng
ChartType.BarStacked
để mô phỏng bố cục biểu đồ Gantt. - Thêm offset và duration như là chuỗi.
- Đặt nhãn danh mục bằng cách sử dụng thuộc tính
CategoryData
. - Đặt kiểu dáng và cài đặt trục.
- Lưu sổ làm việc bằng cách sử dụng
workbook.Save()
.
Đây là một đoạn mã C# thực hiện các bước trên:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Tải tệp Excel lên
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];
// Thêm biểu đồ Gantt
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 7, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Gantt Chart";
// Thêm độ lệch và thời gian dưới dạng chuỗi
chart.NSeries.Add("D2:D6", true); // Start Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Đặt tên nhiệm vụ thành các danh mục
chart.NSeries.CategoryData = "A2:A6";
// Làm cho các thanh bù đắp trở nên vô hình
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Style duration bars
chart.NSeries[1].Area.Formatting = FormattingType.Custom;
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
chart.NSeries[1].DataLabels.ShowValue = true;
// Cài đặt trục
chart.CategoryAxis.IsPlotOrderReversed = true;
chart.CategoryAxis.Title.Text = "Tasks";
chart.ValueAxis.Title.Text = "Days from Start";
chart.ValueAxis.MajorGridLines.IsVisible = true;
// Ẩn chú thích
chart.ShowLegend = false;
// Thay đổi kích thước biểu đồ (tùy chọn)
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Save the result
workbook.Save("GanttChartResult.xlsx", SaveFormat.Xlsx);

Tạo biểu đồ Gantt trong Excel bằng C#
Tùy chỉnh biểu đồ Gantt trong Excel bằng C#
Bạn có thể cải thiện biểu đồ Gantt của mình bằng cách sử dụng các tính năng tùy chỉnh sau trong Aspose.Cells for .NET:
Màu sắc thanh bar Đặt màu đặc cho các thanh thời gian:
chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
Transparent Offsets Làm cho các thanh lệch (vô hình) hoàn toàn trong suốt.
chart.NSeries[0].Area.Formatting = FormattingType.None;
Task Order Đảo ngược trục Y để hiển thị các nhiệm vụ từ trên xuống dưới:
chart.CategoryAxis.IsPlotOrderReversed = true;
Thẻ Dữ Liệu Hiển thị thời gian trực tiếp trên mỗi thanh tác vụ:
chart.NSeries[1].DataLabels.ShowValue = true;
Điều khiển chú thích Xóa hoặc di chuyển chú giải biểu đồ.
chart.ShowLegend = false; // Or reposition: chart.Legend.Position = LegendPositionType.Bottom;
Định dạng Thanh Cá nhân Đặt màu sắc tùy chỉnh cho mỗi nhiệm vụ.
var series = chart.NSeries[1]; series.Points[0].Area.ForegroundColor = Color.Green; series.Points[1].Area.ForegroundColor = Color.Red;
Kích thước Biểu đồ Thay đổi kích thước và định vị lại biểu đồ:
chart.ChartObject.Width = 700; chart.ChartObject.Height = 400;
Tùy chọn xuất khẩu Lưu biểu đồ dưới định dạng Excel, PDF, hoặc hình ảnh.
workbook.Save("GanttChart.xlsx"); workbook.Save("GanttChart.pdf", SaveFormat.Pdf); chart.ToImage("chart.png", ImageFormat.Png);
Đây là một đoạn mã C# thực hiện một số tùy chỉnh đã cho ở trên:
using Aspose.Cells;
using Aspose.Cells.Charts;
// Khởi tạo sổ làm việc và trang tính
Workbook workbook = new Workbook();
Worksheet sheet = workbook.Worksheets[0];
sheet.Name = "Gantt Data";
// Dữ liệu mẫu với ngày tháng
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: = StartDate - ProjectStartDate
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();
// Thêm một biểu đồ
int chartIndex = sheet.Charts.Add(ChartType.BarStacked, 10, 0, 30, 10);
Chart chart = sheet.Charts[chartIndex];
chart.Title.Text = "Project Gantt Chart";
// Thêm chuỗi: Độ lệch (vô hình), Thời gian (hiển thị)
chart.NSeries.Add("D2:D6", true); // Offset
chart.NSeries.Add("C2:C6", true); // Duration
// Đặt nhãn danh mục
chart.NSeries.CategoryData = "A2:A6";
// Làm cho chuỗi Offset trong suốt
chart.NSeries[0].Area.Formatting = FormattingType.None;
// Màu sắc mỗi thanh tác vụ khác nhau
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
}
// Hiển thị nhãn dữ liệu
chart.NSeries[1].DataLabels.ShowValue = true;
// Cài đặt trục
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;
// Xóa Chú Giải
chart.ShowLegend = false;
// Thay đổi kích thước biểu đồ
chart.ChartObject.Width = 700;
chart.ChartObject.Height = 400;
// Xuất ra Excel
workbook.Save("CustomizedGanttChart.xlsx", SaveFormat.Xlsx);

Tùy chỉnh biểu đồ Gantt trong Excel bằng C#
Nhận Giấy phép Miễn phí
Quan tâm đến việc khám phá các sản phẩm Aspose? Ghé thăm license page để có được giấy phép tạm thời miễn phí. Thật dễ dàng để bắt đầu và mở khóa toàn bộ tiềm năng của Aspose.Cells cho các dự án của bạn!
Biểu đồ Gantt Excel: Tài nguyên miễn phí
Đừng dừng lại ở đây! Khám phá thêm các nguồn tài nguyên để nâng cao sự hiểu biết của bạn về Aspose.Cells. Những tài nguyên này sẽ giúp bạn thành thạo tự động hóa Excel và củng cố kỹ năng của bạn.
- Hướng dẫn cho nhà phát triển
- Các ứng dụng trực tuyến miễn phí
- Tài liệu tham khảo API
- Hướng dẫn và bài viết cách làm
Kết luận
Trong bài viết blog này, chúng tôi đã khám phá cách tạo biểu đồ Gantt trong Excel bằng cách sử dụng C#. Aspose.Cells for .NET đơn giản hóa quy trình này với các tính năng mạnh mẽ và linh hoạt. Chúng tôi khuyến khích bạn khám phá thêm về Aspose.Cells for .NET để nâng cao khả năng quản lý dự án của bạn.
Nếu bạn có bất kỳ câu hỏi nào hoặc cần thêm trợ giúp, xin vui lòng liên hệ với chúng tôi tại diễn đàn hỗ trợ miễn phí.