إنشاء مخطط جانت في Excel باستخدام Python

يساعد تصور المهام على جدول زمني في إدارة المشاريع بشكل أفضل. في هذه المقالة، ستتعلم كيف تنشئ مخطط جانت في Excel باستخدام Python مع Aspose.Cells for Python عبر .NET. مع بضع سطور فقط من الكود، يمكنك تحويل بيانات المهام البسيطة إلى جدول زمني بصري ديناميكي ونظيف، مثالي للتقارير، ولوحات المعلومات، ومستندات التخطيط. دعنا نتناول ذلك خطوة بخطوة.

تغطي هذه المقالة المواضيع التالية:

مكتبة بايثون إكسل لرسوم غانت

Aspose.Cells for Python via .NET هي مكتبة قوية للعمل مع ملفات Excel في بايثون. تتيح لك إنشاء وتعديل وتنسيق جداول البيانات برمجياً—بما في ذلك المخططات مثل مخططات جانت.

الميزات الرئيسية:

  • تحكم كامل في الرسوم البيانية والبيانات في Excel.
  • الدعم لـ XLSX و XLS و CSV و PDF.
  • أداء عالي مع ملفات كبيرة.
  • خيارات تخصيص المخططات الغنية.

للبدء، يرجى تثبيت المكتبة باستخدام:

pip install aspose-cells

يمكنك أيضًا تنزيله من الإصدارات.

مخططات جانت مع مخططات الأعمدة المكدسة

لا يوفر Excel نوع مخطط Gantt مدمج، ولا توفره Aspose.Cells أيضاً. لكن يمكنك إنشاء واحدة باستخدام مخطط شريطي تراكمي مع القليل من التنسيق. هذه تقنية شائعة، وتدعم Aspose.Cells ذلك تماماً من خلال الشيفرة.

ما يمكنك القيام به مع Aspose.Cells

يمكنك بسهولة أتمتة مخطط جانت في إكسل من خلال القيام بما يلي:

  • أدخل بيانات المهمة (اسم المهمة، تاريخ البدء، والمدة).
  • أدخل مخطط عمودي م stacked.
  • استخدم سلسلة واحدة لـ “بدء الإزاحة” (غير مرئية) وسلسلة أخرى لـ “المدة” (مرئية).
  • قم بتنسيق الجدول ليبدو كجدول جانت.

هذا يمنحك خطًا زمنيًا ذو مظهر احترافي يمكنك إنشاؤه ديناميكيًا.

Sample Task Data

إليك جدول عينة سنستخدمه:

المهمةتاريخ البدءالمدةتعويض البدء
Task 12025-04-0130
Task 22025-04-0362
Task 32025-04-08107
Task 42025-04-18317
Task 52025-04-21520

Create a Gantt Chart in Excel using Python

اتبع هذه الخطوات لإنشاء مخطط جانت في Excel باستخدام Python مع Aspose.Cells for Python عبر .NET:

  • قم بتحميل ملف بيانات Excel موجود باستخدام فئة Workbook.
  • احصل على ورقة العمل الأولى باستخدام workbook.worksheets[0].
  • إضافة رسم بياني مكدس لإضافة تخطيط مخطط جانت.
  • أضف سلسلتين بيانات: واحدة للإنزياح وواحدة للمدة.
  • قم بتعيين أسماء المهام كعلامات فئة.
  • قم بضبط الأنماط وإعدادات المحاور لتنسيق الرسم البياني.
  • احفظ الملف باستخدام طريقة workbook.save() .

إليك جزء من كود بايثون الذي ينفذ جميع هذه الخطوات:

import aspose.cells as cells
from aspose.pydrawing import Color

# قم بتحميل ملف Excel
workbook = cells.Workbook("sample-data.xlsx")
sheet = workbook.worksheets.get(0)

# أضف مخطط جانت
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)

سيتم إنشاء مخطط شريطي بنمط جانت نظيف مع بيانات المهام الخاصة بك.

Create a Gantt Chart in Excel using Python

إنشاء مخطط جانت في إكسل باستخدام بايثون

خصص مخطط جانت

يمكنك تخصيص مخطط جانت الخاص بك باستخدام الخيارات المتاحة التالية:

ألوان الشريط

عين لونًا ثابتًا لشريط المدة:

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

تحكم الأسطورة

إزالة أو إعادة موضع وسيلة إيضاح الرسم البياني.

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

الشفرة البرمجية التالية بلغة بايثون تطبق بعض التخصيصات المذكورة أعلاه:

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)

# رؤوس الصفحات
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

    # صيغ تاريخ الإزاحة والانتهاء
    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()

# أضف مخطط جانت
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)
لتخصيص مخطط غانت في Excel باستخدام بايثون

تخصيص مخطط جانت في إكسل باستخدام بايثون

احصل على ترخيص مجاني

يمكنك طلب ترخيص مؤقت مجاني لاستكشاف الإمكانيات الكاملة لـ Aspose.Cells دون أي قيود أو علامات مائية.

موارد إضافية

هل تريد استكشاف المزيد؟ الروابط أدناه ستساعدك على الغوص أعمق في Aspose.Cells for Python عبر .NET. سواء كنت تبحث عن أدلة مفصلة، مراجع API، أو أدوات مجانية، فهذه الموارد لديها ما تقدمه لك.

الكلمات الأخيرة

إنشاء مخطط جانت في Excel باستخدام Python هو أمر بسيط وفعال باستخدام Aspose.Cells for Python عبر .NET. يمنحك السيطرة الكاملة على تصميم المخطط وأتمتة Excel. جرب ذلك مع بيانات مشروعك وراقب الفرق.

إذا واجهت أي أسئلة، فلا تتردد في التواصل معنا في منتدى الدعم المجاني.

انظر أيضًا