
タスクのタイムライン上の視覚化は、プロジェクトの管理をより効果的にします。このアーティクルでは、Aspose.Cells for Python via .NETを使用して、PythonでExcelにガントチャートを作成する方法を学びます。数行のコードで、単純なタスクデータをダイナミックでクリーンな視覚的タイムラインに変えることができ、レポート、ダッシュボード、および計画書に最適です。手順を追って進んでいきましょう。
この記事では、以下のトピックについて説明します:
- Python Excelライブラリによるガントチャート
- 積み上げ棒グラフを使用したガントチャート
- Excelでガントチャートを作成するにはPythonを使用する
- ExcelでPythonを使用してガントチャートをカスタマイズする
- 無料リソースを探索する
ガントチャートのためのPython Excelライブラリ
Aspose.Cells for Python via .NET は、PythonでExcelファイルを操作するための強力なライブラリです。これを使用すると、プログラム的にスプレッドシートを作成、変更、フォーマットすることができます。ガントチャートのようなチャートも含まれています。
主な機能:
- Excelのグラフとデータに対する完全な制御。
- XLSX、XLS、CSV、および PDF のサポート。
- 大きなファイルでの高いパフォーマンス。
- リッチチャートのカスタマイズオプション。
始めるには、次のコマンドでライブラリをインストールしてください:
pip install aspose-cells
You may also download it from the releases.
スタックバーチャートを使ったガントチャート
Excelには組み込みのガントチャートタイプはなく、Aspose.Cellsにもありません。しかし、少しのフォーマットを使って積み上げ棒グラフを使用することで、ガントチャートを作成することができます。これは一般的な手法であり、Aspose.Cellsはコードを通じてこれを完全にサポートしています。
Aspose.Cellsでできること
Excelでガントチャートを簡単に自動化するには、以下の手順を実行します:
- タスクデータを入力してください(タスク名、開始日、期間)。
- スタックバーチャートを挿入してください。
- "スタートオフセット"(見えない)用の1つのシリーズと、"期間"(見える)用の別のシリーズを使用します。
- チャートをガントチャートのように見えるようにフォーマットしてください。
これにより、動的に生成できるプロフェッショナルな外観のタイムラインが得られます。
サンプルタスクデータ
ここに私たちが使用するサンプルテーブルがあります:
タスク | 開始日 | 期間 | 開始オフセット |
---|---|---|---|
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 |
ExcelでガントチャートをPythonを使用して作成する
次の手順に従って、.NET経由でPython用Aspose.Cellsを使用してExcelでガントチャートを作成します:
- 既存のExcelデータファイルを
Workbook
クラスを使用してロードします。 workbook.worksheets[0]
で最初のワークシートを取得します。- ガントチャートレイアウトを追加するために、積み上げ棒グラフを追加します。
- 2つのデータ系列を追加します:オフセット用とデュレーション用の1つずつです。
- タスク名をカテゴリーラベルとして設定します。
- チャートのスタイルと軸設定を調整してフォーマットします。
- ファイルを
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)
# ガントチャートを追加する
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)
これは、あなたのタスクデータを使ってクリーンなガントチャートを生成します。

Excelでガントチャートを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")
以下の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
# オフセットと終了日数式
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でPythonを使用してガントチャートをカスタマイズする
無料ライセンスを取得する
あなたは request a free temporary license をリクエストして、Aspose.Cells のすべての機能を制限や透かしなしで探求することができます。
追加のリソース
もっと探求したいですか?以下のリンクは、.NET経由でのPython用Aspose.Cellsに深く入り込むのに役立ちます。詳細なガイド、APIリファレンス、または無料のツールを探している場合、これらのリソースがあなたをサポートします。
最終の言葉
ExcelでのGanttチャートをPythonを使って作成するのは、Aspose.Cells for Python via .NETを使用することで簡単かつ効果的です。これにより、チャートのデザインやExcelの自動化に完全なコントロールを持つことができます。あなたのプロジェクトデータで試してみて、その違いを実感してください。
質問がある場合は、free support forum にお気軽にお問い合わせください。