สร้าง Gantt Chart ใน Excel ด้วย C#

การ visualize ไทม์ไลน์ของโปรเจ็กต์เป็นสิ่งสำคัญสำหรับการวางแผนและติดตามที่มีประสิทธิภาพ ในบล็อกโพสต์นี้ คุณจะได้เรียนรู้วิธีการสร้าง Gantt chart ใน Excel โดยใช้ C# ด้วยเพียงไม่กี่บรรทัดของโค้ด คุณสามารถทำให้การสร้าง Gantt charts ที่มีความไดนามิกและดึงดูดสายตามีการทำงานอัตโนมัติ ไม่ว่าคุณจะกำลังสร้างเครื่องมือการจัดการโปรเจ็กต์หรือทำงานในรายงานภายใน คู่มือนี้จะแสดงให้คุณเห็นว่าคุณสามารถเปลี่ยนข้อมูลงานให้เป็นไทม์ไลน์ที่ชัดเจนและเป็นมืออาชีพได้อย่างไร—ปรับแต่งได้อย่างเต็มที่และพร้อมสำหรับการส่งออกไปยัง Excel, PDF หรือ รูปภาพ รูปแบบ ขอให้เริ่มกันเลย!

บทความนี้ครอบคลุมหัวข้อต่อไปนี้:

ห้องสมุด C# Excel ในการสร้างแผนภูมิแกนต์

Aspose.Cells for .NET เป็นไลบรารี Excel ที่ทรงพลังซึ่งช่วยให้ง่ายต่อการสร้างแผนภูมิ Gantt ใน Excel มันมีฟีเจอร์ที่แข็งแกร่งสำหรับการจัดการไฟล์ Excel โดยโปรแกรม ด้วย Aspose.Cells นักพัฒนาสามารถสร้าง แก้ไข และปรับแต่งแผนภูมิและกราฟได้อย่างง่ายดาย ไลบรารีนี้รองรับรูปแบบ Excel ที่หลากหลายและมีฟังก์ชันขั้นสูง ทำให้เป็นตัวเลือกที่เหมาะสมสำหรับผู้จัดการโครงการและนักพัฒนาเหมือนกัน

Aspose.Cells for .NET โดดเด่นเนื่องจากความสะดวกในการรวมเข้าด้วยกันและความยืดหยุ่น นี่คือคุณสมบัติหลักบางประการ:

  • API ที่ครอบคลุม: เข้าถึงฟังก์ชันการทำงานของ Excel ที่หลากหลาย
  • การปรับแต่งขั้นสูง: ปรับแก้กราฟและแผนภูมิให้ตรงกับความต้องการเฉพาะ
  • ประสิทธิภาพสูง: จัดการกับชุดข้อมูลขนาดใหญ่ได้อย่างมีประสิทธิภาพโดยไม่ลดความเร็ว
  • การสนับสนุนรูปแบบหลายรูปแบบ: ทำงานกับรูปแบบ Excel หลายรูปแบบ รวมถึง XLSX, XLS และ CSV.

ทำตามขั้นตอนง่ายๆ เหล่านี้เพื่อเริ่มต้นกับ Aspose.Cells for .NET:

  1. ดาวน์โหลดห้องสมุดจาก releases.
  2. ติดตั้งผ่าน NuGet Package Manager ด้วยคำสั่งต่อไปนี้:
    PM> Install-Package Aspose.Cells
    

วิธีสร้างแผนภูมิ Gantt โดยใช้แผนภูมิแท่งที่ซ้อนกัน

Aspose.Cells ไม่มีประเภทแผนภูมิ Gantt ในตัวเนื่องจาก Excel เองก็ไม่มีประเภทแผนภูมิ Gantt ที่เป็นเนื้อแท้เช่นกัน อย่างไรก็ตาม แผนภูมิ Gantt ใน Excel มักถูกสร้างขึ้นโดยใช้แผนภูมิแถบซ้อนที่รวมกับการจัดรูปแบบแบบกำหนดเอง — และ Aspose.Cells สนับสนุนวิธีนี้ในระดับโปรแกรมด้วย

สิ่งที่คุณสามารถทำได้กับ Aspose.Cells:

คุณสามารถทำให้การสร้างแผนภูมิ Gantt ใน Excel เป็นอัตโนมัติได้โดย

  • ตั้งค่าข้อมูลงาน (ชื่องาน, วันที่เริ่มต้น, ระยะเวลา)
  • เพิ่มแผนภูมิแท่งซ้อน.
  • ใช้ชุดเดียวสำหรับ “start offset” (ซ่อน) และอีกชุดสำหรับ “duration” (มองเห็น)
  • จัดรูปแบบแผนภูมิให้คล้ายกับแผนภูมิแกนต์.

Sample Gantt Chart Data


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

สร้าง Gantt Chart ใน Excel โดยใช้ C#

ทำตามขั้นตอนเหล่านี้เพื่อสร้าง Gantt chart ใน Excel โดยใช้ C# กับ Aspose.Cells for .NET:

  1. โหลดไฟล์ Excel ที่มีอยู่แล้วโดยใช้คลาส Workbook
  2. เข้าถึงแผ่นงานแรกโดยใช้ workbook.Worksheets[0]
  3. เพิ่มแผนภูมิโดยใช้ ChartType.BarStacked เพื่อจำลองรูปแบบแผนภูมิแกนต์。
  4. เพิ่มออฟเซ็ตและระยะเวลาเป็นชุด.
  5. ตั้งค่าป้ายหมวดหมู่โดยใช้ CategoryData property.
  6. ตั้งค่า Styles และการตั้งค่าแกน
  7. บันทึกสมุดงานโดยใช้ workbook.Save()

นี่คือโค้ด C# ที่ทำตามขั้นตอนข้างต้น:

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

// โหลดไฟล์ Excel
Workbook workbook = new Workbook("sample-data.xlsx");
Worksheet sheet = workbook.Worksheets[0];

// เพิ่มแผนภูมิ Gantt
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);
สร้างแผนภูมิ Gantt ใน Excel โดยใช้ C#

สร้างแผนผัง Gantt ใน Excel โดยใช้ C#

ปรับแต่งแผนภูมิ Gantt ใน Excel โดยใช้ C#

คุณสามารถปรับปรุงแผนภูมิ Gantt ของคุณโดยใช้คุณสมบัติการปรับแต่งต่อไปนี้ใน Aspose.Cells for .NET:

  • สีบาร์ ตั้งค่าสีทึบสำหรับแถบระยะเวลา:

    chart.NSeries[1].Area.ForegroundColor = Color.SteelBlue;
    
  • Transparent Offsets ทำให้แถบ (ซึ่งมองไม่เห็น) เลื่อนให้โปร่งใสทั้งหมด

    chart.NSeries[0].Area.Formatting = FormattingType.None;
    
  • คำสั่งงาน กลับแกน Y เพื่อแสดงงานจากด้านบนลงล่าง:

    chart.CategoryAxis.IsPlotOrderReversed = true;
    
  • Data Labels แสดงระยะเวลาโดยตรงบนแถบงานแต่ละอัน:

    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: = 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();

// เพิ่มแผนภูมิ
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);
ปรับแต่งแผนภูมิ Gantt ใน Excel โดยใช้ C#

ปรับแต่งแผนภูมิ Gantt ใน Excel โดยใช้ C#

รับใบอนุญาตฟรี

สนใจสำรวจผลิตภัณฑ์ Aspose หรือไม่? เยี่ยมชม license page เพื่อขอรับใบอนุญาตชั่วคราวฟรี เริ่มต้นได้ง่ายและปลดล็อกพลังเต็มที่ของ Aspose.Cells สำหรับโครงการของคุณ!

Gantt Chart Excel: แหล่งข้อมูลฟรี

อย่าหยุดที่นี่! สำรวจแหล่งข้อมูลเพิ่มเติมเพื่อช่วยเพิ่มพูนความเข้าใจของคุณเกี่ยวกับ Aspose.Cells ทรัพยากรเหล่านี้จะช่วยให้คุณเชี่ยวชาญในการทำงานอัตโนมัติของ Excel และเสริมสร้างทักษะของคุณ

ข้อสรุป

ในบล็อกโพสต์นี้ เราได้สำรวจวิธีการสร้างแผนภูมิ Gantt ใน Excel โดยใช้ C# Aspose.Cells for .NET ทำให้กระบวนการนี้ง่ายขึ้นด้วยฟีเจอร์ที่ทรงพลังและความยืดหยุ่น เราขอแนะนำให้คุณสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Cells for .NET เพื่อเพิ่มขีดความสามารถในการจัดการโครงการของคุณ

หากคุณมีคำถามหรือต้องการความช่วยเหลือเพิ่มเติม โปรดอย่าลังเลที่จะติดต่อที่ free support forum.

ดูเพิ่มเติม