介绍
Aspose.Cells FOSS 支持从 Python 直接在 Excel .xlsx 文件中创建图表。该库提供专用的 add_*() 方法,支持 16 种图表类型(折线图、条形图、饼图、面积图、散点图、瀑布图、组合图、股票图、曲面图、雷达图、树图、旭日图、直方图、漏斗图、箱线图和地图)。其中,折线图、条形图、饼图、面积图和股票图具备完整的 XML 序列化支持,并能正确保存到 .xlsx。其余类型可以在内存中创建,但在保存时可能无法保留所有格式。
图表通过 worksheet.charts.add_*() 方法添加,该方法接受由 (upper_left_row, upper_left_column, lower_right_row, lower_right_column) 定义的以零为基准的索引的边界框。系列数据通过 chart.n_series.add() 添加。
创建柱状图
from aspose.cells_foss import Workbook
workbook = Workbook()
worksheet = workbook.worksheets[0]
# Write data
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
sales = [100, 150, 120, 180, 200, 170]
for i, (m, s) in enumerate(zip(months, sales), 2):
worksheet.cells[f"A{i}"].value = m
worksheet.cells[f"B{i}"].value = s
# Add a bar chart anchored to rows 0-20, columns 4-12
chart = worksheet.charts.add_bar(0, 4, 20, 12)
chart.title = "Monthly Sales"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Sales")
workbook.save("bar_chart.xlsx")
创建折线图
from aspose.cells_foss import Workbook
workbook = Workbook()
worksheet = workbook.worksheets[0]
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun"]
sales = [100, 150, 120, 180, 200, 170]
for i, (m, s) in enumerate(zip(months, sales), 2):
worksheet.cells[f"A{i}"].value = m
worksheet.cells[f"B{i}"].value = s
# Line chart anchored to rows 0-20, columns 4-12
chart = worksheet.charts.add_line(0, 4, 20, 12)
chart.title = "Monthly Sales"
chart.n_series.add("B2:B7", category_data="A2:A7", name="Sales")
workbook.save("line_chart.xlsx")
关键要点
- 16 种图表创建方法可用;Line、Bar、Pie、Area 和 Stock 完全支持保存 — 其他类型可以创建,但可能无法将所有格式序列化到
.xlsx - 图表通过零基行列索引的边界框进行定位
- 系列数据和类别标签使用 Excel 样式的范围字符串指定 (
"B2:B7") - 无需 Microsoft Excel、COM 自动化或本机依赖