
การมองเห็นงานบนไทม์ไลน์ช่วยให้การจัดการโครงการได้ดีขึ้น ในบทความนี้คุณจะได้เรียนรู้วิธีการสร้างแผนภูมิแกนต์ใน Excel โดยใช้ Python กับ Aspose.Cells for Python ผ่าน .NET เพียงไม่กี่บรรทัดของโค้ด คุณสามารถเปลี่ยนข้อมูลงานที่เรียบง่ายให้เป็นไทม์ไลน์ภาพที่มีชีวิตชีวามและสะอาด เหมาะสำหรับรายงาน แดชบอร์ด และเอกสารการวางแผน เรามาเดินผ่านขั้นตอนนี้ไปด้วยกันทีละขั้นตอน
บทความนี้ครอบคลุมหัวข้อดังต่อไปนี้:
- Python ไลบรารี Excel สำหรับแผนภูมิแกนท์
- แผนภูมิแกนท์โดยใช้แผนภูมิแท่งทับซ้อน
- สร้างแผนภูมิ Gantt ใน Excel โดยใช้ Python
- ปรับแต่งแผนภูมิ Gantt ใน Excel โดยใช้ Python
- สำรวจแหล่งข้อมูลฟรี
Python Excel Library for Gantt Charts
Aspose.Cells for Python via .NET เป็นห้องสมุดที่มีประสิทธิภาพสำหรับการทำงานกับไฟล์ Excel ใน Python มันช่วยให้คุณสร้าง แก้ไข และจัดรูปแบบสเปรดชีตทางโปรแกรม—รวมถึงแผนภูมิ เช่น แผนภูมิ Gantt
คุณสมบัติเด่น:
- ควบคุม Excel แผนภูมิและข้อมูลทั้งหมดได้อย่างเต็มที่.
- รองรับ XLSX, XLS, CSV, และ PDF.
- ประสิทธิภาพสูงกับไฟล์ขนาดใหญ่
- ตัวเลือกการปรับแต่งแผนภูมิที่หลากหลาย
ในการเริ่มต้น กรุณาติดตั้งไลบรารีด้วย:
pip install aspose-cells
คุณยังสามารถดาวน์โหลดได้จาก releases.
แผนภูมิ Gantt กับแผนภูมิแท่งซ้อน
Excel ไม่มีประเภทแผนภูมิ Gantt แบบในตัว และ Aspose.Cells ก็ไม่มีเช่นกัน แต่คุณยังสามารถสร้างแผนภูมิ Gantt ได้โดยใช้แผนภูมิแท่งซ้อนพร้อมการจัดรูปแบบเล็กน้อย นี่เป็นเทคนิคทั่วไป และ Aspose.Cells รองรับมันอย่างเต็มที่ผ่านทางโค้ด
สิ่งที่คุณสามารถทำได้กับ Aspose.Cells
คุณสามารถทำให้แผนภูมิ Gantt ใน Excel อัตโนมัติได้อย่างง่ายดายโดยทำตามขั้นตอนดังต่อไปนี้:
- กรอกข้อมูลงาน (ชื่องาน, วันที่เริ่มต้น, และระยะเวลา)
- แทรกแผนภูมิแท่งแบบซ้อน.
- ใช้ชุดหนึ่งสำหรับ “ตำแหน่งเริ่มต้น” (ไม่สามารถมองเห็นได้) และอีกชุดหนึ่งสำหรับ “ระยะเวลา” (สามารถมองเห็นได้)
- จัดรูปแบบแผนภูมิให้มีลักษณะเป็นแผนภูมิแกนต์
นี่จะทำให้คุณมีไทม์ไลน์ที่ดูเป็นมืออาชีพซึ่งคุณสามารถสร้างได้แบบไดนามิก
Sample Task Data
นี่คือตัวอย่างตารางที่เราจะใช้:
งาน | วันที่เริ่ม | ระยะเวลา | การเลื่อนเริ่มต้น |
---|---|---|---|
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 ใน Excel โดยใช้ Python
ทำตามขั้นตอนเหล่านี้เพื่อสร้างแผนภูมิ Gantt ใน Excel โดยใช้ Python กับ Aspose.Cells for Python ผ่าน .NET:
- โหลดไฟล์ข้อมูล Excel ที่มีอยู่โดยใช้คลาส
Workbook
- รับแผ่นงานแรกด้วย
workbook.worksheets[0]
- เพิ่มแผนภูมิแท่งซ้อนเพื่อเพิ่มเลเอาต์ของแผนภูมิแกนต์。
- เพิ่มชุดข้อมูลสองชุด: หนึ่งชุดสำหรับการชดเชยและอีกชุดสำหรับระยะเวลา。
- ตั้งชื่อภารกิจเป็นป้ายหมวดหมู่。
- ปรับแต่งรูปแบบและการตั้งค่าแกนเพื่อจัดรูปแบบกราฟ
- บันทึกไฟล์โดยใช้วิธี
workbook.save()
นี่คือโค้ด Python ที่ทำตามขั้นตอนทั้งหมดเหล่านี้:
import aspose.cells as cells
from aspose.pydrawing import Color
# โหลดไฟล์ Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)
# เพิ่มแผนภูมิ Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Gantt Chart"
# เพิ่มออฟเซ็ตและระยะเวลาเป็นชุด
chart.n_series.add("D2:D6", True) # Start Offset
chart.n_series.add("C2:C6", True) # Duration
# ตั้งชื่อภารกิจเป็นหมวดหมู่
chart.n_series.category_data = "A2:A6"
# ทำให้แถบเลื่อนซ่อนอยู่
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# สไตล์แถบระยะเวลา
chart.n_series[1].area.formatting = cells.charts.FormattingType.CUSTOM
chart.n_series[1].area.foreground_color = Color.steel_blue
chart.n_series[1].data_labels.show_value = True
# การตั้งค่าแกน
chart.category_axis.is_plot_order_reversed = True
chart.category_axis.title.text = "Tasks"
chart.value_axis.title.text = "Days from Start"
chart.value_axis.major_grid_lines.is_visible = True
# ซ่อนตำนาน
chart.show_legend = False
# ปรับขนาดแผนภูมิ (ไม่บังคับ)
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save the result
workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)
สิ่งนี้จะสร้างแผนภูมิแบบแผนที่ Gantt ที่สะอาดด้วยข้อมูลงานของคุณ

Create a Gantt Chart in Excel using Python
ปรับแต่งแผนภูมิแกนต์
คุณสามารถปรับแต่งแผนภูมิ Gantt ของคุณโดยใช้ตัวเลือกที่มีให้ดังต่อไปนี้:
สีของบาร์
ตั้งค่าระยะสีทึบสำหรับแถบระยะเวลา:
chart.n_series[1].area.foreground_color = Color.steel_blue
การเบี่ยงเบนที่โปร่งใส
ทำให้แถบออฟเซ็ต (ที่มองไม่เห็น) โปร่งใสเต็มที่。
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
คำสั่งงาน
กลับแกน Y เพื่อแสดงงานจากบนลงล่าง:
chart.category_axis.is_plot_order_reversed = True
ป้ายข้อมูล
แสดงระยะเวลาโดยตรงบนแถบเครื่องมือแต่ละอัน:
chart.n_series[1].data_labels.show_value = True
Legend Control
ลบหรือเปลี่ยนตำแหน่งคำบรรยายแผนภูมิ
chart.show_legend = False
# Or reposition:
chart.legend.position = cells.charts.LegendPositionType.BOTTOM
ตั้งค่าสีแถบแบบกำหนดเอง
chart.n_series[1].points[0].area.foreground_color = Color.green
chart.n_series[1].points[1].area.foreground_color = Color.red
ปรับขนาดแผนภูมิ
chart.chart_object.width = 700
chart.chart_object.height = 400
ส่งออกเป็น PDF หรือรูปภาพ
workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF)
chart.to_image("chart.png")
โค้ด Python ถัดไปนี้ใช้การปรับแต่งบางอย่างที่ได้กล่าวถึงข้างต้น:
import aspose.cells as cells
from aspose.pydrawing import Color
import datetime
# เริ่มต้นเวิร์กบุ๊คและแผ่นงาน
workbook = cells.Workbook()
sheet = workbook.worksheets.get(0)
sheet.name = "Gantt Data"
# วันที่เริ่มต้นโครงการ
project_start = datetime.date(2025, 4, 1)
# Headers
sheet.cells.get("A1").put_value("Task")
sheet.cells.get("B1").put_value("Start Date")
sheet.cells.get("C1").put_value("Duration (Days)")
sheet.cells.get("D1").put_value("Start Offset")
sheet.cells.get("E1").put_value("End Date")
# ข้อมูลงาน: [ชื่อภารกิจ, วันที่เริ่ม, ระยะเวลา]
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 i, task in enumerate(tasks):
row = i + 2 # Start from row 2
sheet.cells.get(row, 0).put_value(task[0]) # Task Name
sheet.cells.get(row, 1).put_value(datetime.datetime.strptime(task[1], "%Y-%m-%d").date()) # Start Date
sheet.cells.get(row, 2).put_value(int(task[2])) # Duration
# สูตรวันที่ Offset และวันที่สิ้นสุด
sheet.cells.get(row, 3).formula = f"=B{row + 1} - DATE(2025,4,1)" # Offset
sheet.cells.get(row, 4).formula = f"=B{row + 1} + C{row + 1}" # End Date
# ปรับขนาดคอลัมน์อัตโนมัติ
sheet.auto_fit_columns()
# เพิ่มแผนภูมิ Gantt
chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 10, 0, 30, 10)
chart = sheet.charts[chart_index]
chart.title.text = "Project Gantt Chart"
# เพิ่มชุดข้อมูล: ออฟเซ็ต (ไม่แสดง), ระยะเวลา (แสดง)
chart.n_series.add("D2:D6", True) # Offset
chart.n_series.add("C2:C6", True) # Duration
# ตั้งชื่อกิจกรรมเป็นป้ายหมวดหมู่
chart.n_series.category_data = "A2:A6"
# ทำให้แถบออฟเซ็ตมองไม่เห็น
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
# ทำให้แถบงานแต่ละงานมีสีแตกต่างกัน
duration_series = chart.n_series[1]
for i in range(duration_series.points.count):
red = 100 + i * 30
duration_series.points[i].area.foreground_color = Color.from_argb(255, red, 150)
# แสดงป้ายข้อมูลบนแถบระยะเวลา
duration_series.data_labels.show_value = True
# การกำหนดแกน
chart.category_axis.title.text = "Tasks"
chart.category_axis.is_plot_order_reversed = True
chart.value_axis.title.text = "Days from Project Start"
chart.value_axis.major_grid_lines.is_visible = True
chart.value_axis.min_value = 0
chart.value_axis.major_unit = 5.0
# ซ่อนตำนาน
chart.show_legend = False
# ปรับขนาดแผนภูมิ
chart.chart_object.width = 700
chart.chart_object.height = 400
# Save output
workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)

ปรับแต่งแผนภูมิ Gantt ใน Excel โดยใช้ Python
รับใบอนุญาตฟรี
คุณสามารถ request a free temporary license เพื่อสำรวจความสามารถทั้งหมดของ Aspose.Cells โดยไม่มีข้อจำกัดหรือเครื่องหมายลายน้ำใดๆ
แหล่งข้อมูลเพิ่มเติม
ต้องการค้นหาเพิ่มเติมหรือไม่? ลิงก์ด้านล่างจะช่วยให้คุณเจาะลึกเข้าไปใน Aspose.Cells for Python ผ่าน .NET ไม่ว่าคุณจะมองหาคู่มือรายละเอียด, เอกสารอ้างอิง API, หรือเครื่องมือฟรี, แหล่งข้อมูลเหล่านี้มีคุณให้ความคุ้มครอง
Final Words
การสร้างแผนภูมิ Gantt ใน Excel ด้วย Python เป็นเรื่องง่ายและมีประสิทธิภาพโดยใช้ Aspose.Cells for Python ผ่าน .NET มันให้คุณควบคุมการออกแบบแผนภูมิและการติดตั้งอัตโนมัติของ Excel เต็มที่ ลองใช้กับข้อมูลโครงการของคุณและดูความแตกต่าง.
ถ้าคุณมีคำถามใด ๆ โปรดอย่าลังเลที่จะติดต่อที่ free support forum ของเรา