翻译|使用教程|编辑:吉炜炜|2025-07-16 10:54:37.343|阅读 2 次
概述:时间轴上的任务可视化有助于更好地管理项目。本文将学习如何使用Aspose.Cells for Python 通过 .NET在 Excel 中创建甘特图。只需几行代码,即可将简单的任务数据转换为动态清晰的可视化时间轴,非常适合用于报表、仪表板和规划文档。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
时间轴上的任务可视化有助于更好地管理项目。本文将学习如何使用Aspose.Cells for Python 通过 .NET在 Excel 中创建甘特图。只需几行代码,即可将简单的任务数据转换为动态清晰的可视化时间轴,非常适合用于报表、仪表板和规划文档。
加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。
Aspose.Cells for Python via .NET是一个功能强大的库,用于在 Python 中处理 Excel 文件。它允许您以编程方式创建、修改和格式化电子表格,包括甘特图等图表。
首先,请使用以下命令安装该库:
pip install aspose-cells
您也可以从发布版本中下载它。
Excel 和 Aspose.Cells 均未提供内置甘特图类型。但您仍然可以使用堆叠条形图并进行一些格式设置来创建甘特图。这是一种常用技术,Aspose.Cells 完全通过代码支持该技术。
您可以通过执行以下操作轻松地在 Excel 中自动执行甘特图:
这为您提供了一个可以动态生成的专业时间线。
这是我们将使用的示例表:
任务 | 开始日期 | 期间 | 起始偏移 |
---|---|---|---|
任务 1 | 2025年4月1日 | 3 | 0 |
任务 2 | 2025年4月3日 | 6 | 2 |
任务 3 | 2025年4月8日 | 10 | 7 |
任务 4 | 2025年4月18日 | 3 | 17 |
任务 5 | 2025年4月21日 | 5 | 20 |
按照以下步骤通过 .NET 使用 Aspose.Cells for Python 在 Excel 中创建甘特图:
以下是执行所有这些步骤的 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)这将生成包含您的任务数据的干净的甘特图。
您可以使用以下可用选项自定义甘特图:
条形颜色
为持续时间条设置纯色:
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 # 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 通过 .NET 在 Excel 中创建甘特图既简单又高效。它让您可以完全控制图表设计和 Excel 自动化。
————————————————————————————————————————
关于慧都科技:
慧都科技是专注软件工程、智能制造、石油工程三大行业的数字化解决方案服务商。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技Aspose在中国的官方授权代理商,提供Aspose系列产品免费试用,咨询,正版销售等于一体的专业化服务。Aspose是文档处理领域的优秀产品,帮助企业高效构建文档处理的应用程序。
下载|体验更多Aspose产品,请咨询,或拨打产品热线:023-68661681
加入Aspose技术交流QQ群(1041253375),与更多小伙伴一起探讨提升开发技能。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ningjinzhiyuan.cn
文章转载自:慧都网