翻譯|使用教程|編輯:吉煒煒|2025-07-16 10:54:37.343|閱讀 109 次
概述:時(shí)間軸上的任務(wù)可視化有助于更好地管理項(xiàng)目。本文將學(xué)習(xí)如何使用Aspose.Cells for Python 通過(guò) .NET在 Excel 中創(chuàng)建甘特圖。只需幾行代碼,即可將簡(jiǎn)單的任務(wù)數(shù)據(jù)轉(zhuǎn)換為動(dòng)態(tài)清晰的可視化時(shí)間軸,非常適合用于報(bào)表、儀表板和規(guī)劃文檔。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
時(shí)間軸上的任務(wù)可視化有助于更好地管理項(xiàng)目。本文將學(xué)習(xí)如何使用Aspose.Cells for Python 通過(guò) .NET在 Excel 中創(chuàng)建甘特圖。只需幾行代碼,即可將簡(jiǎn)單的任務(wù)數(shù)據(jù)轉(zhuǎn)換為動(dòng)態(tài)清晰的可視化時(shí)間軸,非常適合用于報(bào)表、儀表板和規(guī)劃文檔。
加入Aspose技術(shù)交流QQ群(1041253375),與更多小伙伴一起探討提升開發(fā)技能。
Aspose.Cells for Python via .NET是一個(gè)功能強(qiáng)大的庫(kù),用于在 Python 中處理 Excel 文件。它允許您以編程方式創(chuàng)建、修改和格式化電子表格,包括甘特圖等圖表。
首先,請(qǐng)使用以下命令安裝該庫(kù):
pip install aspose-cells
您也可以從發(fā)布版本中下載它。
Excel 和 Aspose.Cells 均未提供內(nèi)置甘特圖類型。但您仍然可以使用堆疊條形圖并進(jìn)行一些格式設(shè)置來(lái)創(chuàng)建甘特圖。這是一種常用技術(shù),Aspose.Cells 完全通過(guò)代碼支持該技術(shù)。
您可以通過(guò)執(zhí)行以下操作輕松地在 Excel 中自動(dòng)執(zhí)行甘特圖:
這為您提供了一個(gè)可以動(dòng)態(tài)生成的專業(yè)時(shí)間線。
這是我們將使用的示例表:
任務(wù) | 開始日期 | 期間 | 起始偏移 |
---|---|---|---|
任務(wù) 1 | 2025年4月1日 | 3 | 0 |
任務(wù) 2 | 2025年4月3日 | 6 | 2 |
任務(wù) 3 | 2025年4月8日 | 10 | 7 |
任務(wù) 4 | 2025年4月18日 | 3 | 17 |
任務(wù) 5 | 2025年4月21日 | 5 | 20 |
按照以下步驟通過(guò) .NET 使用 Aspose.Cells for Python 在 Excel 中創(chuàng)建甘特圖:
以下是執(zhí)行所有這些步驟的 Python 代碼片段:
import aspose.cells as cells from aspose.pydrawing import Color # Load the Excel file workbook = cells.Workbook("sample-data.xlsx") sheet = workbook.worksheets.get(0) # Add Gantt Chart chart_index = sheet.charts.add(cells.charts.ChartType.BAR_STACKED, 7, 0, 30, 10) chart = sheet.charts[chart_index] chart.title.text = "Gantt Chart" # Add offset and duration as series chart.n_series.add("D2:D6", True) # Start Offset chart.n_series.add("C2:C6", True) # Duration # Set task names as categories chart.n_series.category_data = "A2:A6" # Make offset bars invisible chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE # Style duration bars 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 # Axis settings 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 # Hide legend chart.show_legend = False # Resize chart (optional) chart.chart_object.width = 700 chart.chart_object.height = 400 # Save the result workbook.save("GanttChartResult.xlsx", cells.SaveFormat.XLSX)這將生成包含您的任務(wù)數(shù)據(jù)的干凈的甘特圖。
您可以使用以下可用選項(xiàng)自定義甘特圖:
條形顏色
為持續(xù)時(shí)間條設(shè)置純色:
chart.n_series[1].area.foreground_color = Color.steel_blue
透明偏移
使偏移(不可見)條完全透明。
chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE
任務(wù)順序
反轉(zhuǎn) Y 軸以從上到下顯示任務(wù):
chart.category_axis.is_plot_order_reversed = True
數(shù)據(jù)標(biāo)簽
在每個(gè)任務(wù)欄上直接顯示持續(xù)時(shí)間:
chart.n_series[1].data_labels.show_value = True
圖例控制
刪除或重新定位圖表圖例。
chart.show_legend = False # Or reposition: chart.legend.position = cells.charts.LegendPositionType.BOTTOM設(shè)置自定義欄顏色
chart.n_series[1].points[0].area.foreground_color = Color.green chart.n_series[1].points[1].area.foreground_color = Color.red
調(diào)整圖表大小
chart.chart_object.width = 700 chart.chart_object.height = 400
導(dǎo)出為 PDF 或圖像
workbook.save("gantt_chart.pdf", cells.SaveFormat.PDF) chart.to_image("chart.png")
以下 Python 代碼片段應(yīng)用了上面提到的一些自定義:
import aspose.cells as cells from aspose.pydrawing import Color import datetime # Initialize workbook and worksheet workbook = cells.Workbook() sheet = workbook.worksheets.get(0) sheet.name = "Gantt Data" # Project start date 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") # Task data: [Task Name, Start Date, Duration] 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"] ] # Fill data into the sheet 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 and End Date formulas 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 # Auto-fit columns sheet.auto_fit_columns() # Add Gantt chart 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" # Add data series: Offset (invisible), Duration (visible) chart.n_series.add("D2:D6", True) # Offset chart.n_series.add("C2:C6", True) # Duration # Set task names as category labels chart.n_series.category_data = "A2:A6" # Make offset bars invisible chart.n_series[0].area.formatting = cells.charts.FormattingType.NONE # Color each task bar differently 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) # Show data labels on duration bars duration_series.data_labels.show_value = True # Axis configuration 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 # Hide legend chart.show_legend = False # Resize chart chart.chart_object.width = 700 chart.chart_object.height = 400 # Save output workbook.save("CustomizedGanttChart.xlsx", cells.SaveFormat.XLSX)
使用 Aspose.Cells for Python 通過(guò) .NET 在 Excel 中創(chuàng)建甘特圖既簡(jiǎn)單又高效。它讓您可以完全控制圖表設(shè)計(jì)和 Excel 自動(dòng)化。
————————————————————————————————————————
關(guān)于慧都科技:
慧都科技是專注軟件工程、智能制造、石油工程三大行業(yè)的數(shù)字化解決方案服務(wù)商。在軟件工程領(lǐng)域,我們提供開發(fā)控件、研發(fā)管理、代碼開發(fā)、部署運(yùn)維等軟件開發(fā)全鏈路所需的產(chǎn)品,提供正版授權(quán)采購(gòu)、技術(shù)選型、個(gè)性化維保等服務(wù),幫助客戶實(shí)現(xiàn)技術(shù)合規(guī)、降本增效與風(fēng)險(xiǎn)可控?;鄱伎萍?span style="color:#FF9900;">Aspose在中國(guó)的官方授權(quán)代理商,提供Aspose系列產(chǎn)品免費(fèi)試用,咨詢,正版銷售等于一體的專業(yè)化服務(wù)。Aspose是文檔處理領(lǐng)域的優(yōu)秀產(chǎn)品,幫助企業(yè)高效構(gòu)建文檔處理的應(yīng)用程序。
下載|體驗(yàn)更多Aspose產(chǎn)品,請(qǐng)咨詢,或撥打產(chǎn)品熱線:023-68661681
加入Aspose技術(shù)交流QQ群(1041253375),與更多小伙伴一起探討提升開發(fā)技能。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)