当前位置: 代码网 > it编程>前端脚本>Python > 使用Python在Excel工作表中创建图表的实现步骤

使用Python在Excel工作表中创建图表的实现步骤

2025年12月30日 Python 我要评论
引言在现代企业中,数据驱动的决策变得越来越重要。从销售分析到市场趋势跟踪,再到项目绩效考核,清晰直观的数据呈现不仅能提高分析效率,也能增强管理层的决策信心。excel 作为企业中最常用的数据分析工具,

引言

在现代企业中,数据驱动的决策变得越来越重要。从销售分析到市场趋势跟踪,再到项目绩效考核,清晰直观的数据呈现不仅能提高分析效率,也能增强管理层的决策信心。excel 作为企业中最常用的数据分析工具,其强大的表格和图表功能在日常工作中不可或缺。然而,当面对成百上千条数据或需要生成定期报告时,手动制作图表不仅耗时,还容易出错。而 python 拥有丰富的生态和强大的数据处理能力,通过编程实现 excel 图表自动化生成,既可以保证数据准确性,也可以大幅提升效率。

本文将使用 free spire.xls for python 展示如何在 excel 中创建柱状图、折线图、饼图及气泡图,结合实际业务场景的数据示例,帮助你快速掌握自动化可视化技能。

1. 环境准备与库安装

首先需要安装 free spire.xls for python:

pip install spire.xls.free

安装完成后,我们可以开始创建 excel 工作簿并准备数据。下面是一个创建 excel 文件的简单示例:

from spire.xls import workbook

# 创建一个新的工作簿
wb = workbook()
sheet = wb.worksheets[0]
sheet.name = "销售数据"

# 保存初始文件
wb.savetofile("salesdata.xlsx")
wb.dispose()
print("excel 文件已创建:salesdata.xlsx")

说明
workbook 对象代表整个 excel 文件,worksheets[0] 获取第一个工作表。这里我们创建了一个名为“销售数据”的工作表,为后续写入数据和生成图表做好准备。

注意:新建的excel工作簿有三个默认的工作表,sheet1、sheet2、sheet3,可根据需要直接读取编辑或清除后重新创建。

2. 在 excel 中写入业务数据

假设我们正在分析一个季度内不同地区的销售额情况。我们可以在代码中直接生成数据:

from spire.xls import workbook

wb = workbook()
sheet = wb.worksheets[0]
sheet.name = "销售数据"

# 写入表头
headers = ["地区", "产品", "销售额 (万元)"]
for col, header in enumerate(headers, start=1):
    sheet.range[1, col].text = header

# 写入示例数据
sales_data = [
    ["华东", "笔记本电脑", 120],
    ["华东", "平板电脑", 85],
    ["华北", "笔记本电脑", 95],
    ["华北", "平板电脑", 70],
    ["华南", "笔记本电脑", 110],
    ["华南", "平板电脑", 90],
]

for row, data in enumerate(sales_data, start=2):
    for col, value in enumerate(data, start=1):
        if isinstance(value, str):
            sheet.range[row, col].value = value
        else:
            sheet.range[row, col].numbervalue = value

# 自动调整列宽
sheet.range.autofitcolumns()

wb.savetofile("salesdata.xlsx")
wb.dispose()
print("业务数据已写入 excel 文件")

工作表预览:

说明
这里我们模拟了三个区域、两类产品的季度销售数据,更贴近实际业务场景,便于生成有意义的图表。

3. 创建柱状图:不同地区产品销售对比

柱状图适合展示不同类别的对比情况。我们以销售额为数据创建柱状图:

from spire.xls import workbook, excelcharttype, color

wb = workbook()
wb.loadfromfile("salesdata.xlsx")
sheet = wb.worksheets[0]

# 添加柱状图
chart = sheet.charts.add()
chart.datarange = sheet.range["a1:c7"]  # 包含表头和数据
chart.seriesdatafromrange = false        # 按列获取系列数据

# 设置图表位置
chart.leftcolumn = 1
chart.toprow = 8
chart.rightcolumn = 10
chart.bottomrow = 25

# 设置图表类型
chart.charttype = excelcharttype.columnclustered
chart.charttitle = "各地区产品销售额对比"
chart.charttitlearea.isbold = true
chart.charttitlearea.size = 12

# 设置轴标题
chart.primarycategoryaxis.title = "地区"
chart.primaryvalueaxis.title = "销售额 (万元)"

# 设置颜色与数据标签
for cs in chart.series:
    cs.format.options.isvarycolor = true
    cs.datapoints.defaultdatapoint.datalabels.hasvalue = true

wb.savetofile("saleschart_column.xlsx")
wb.dispose()
print("柱状图创建完成:saleschart_column.xlsx")

工作表预览:

说明
通过 chart.datarange 指定数据区域,chart.charttype 设置图表类型,datalabels 显示每个数据点的数值,使图表直观易读。

4. 创建折线图:观察销售趋势

折线图适用于展示销售趋势或随时间变化的数据:

from spire.xls import workbook, excelcharttype

wb = workbook()
wb.loadfromfile("salesdata.xlsx")
sheet = wb.worksheets[0]

chart_line = sheet.charts.add()
chart_line.datarange = sheet.range["a1:c7"]
chart_line.seriesdatafromrange = false

chart_line.leftcolumn = 1
chart_line.toprow = 9
chart_line.rightcolumn = 9
chart_line.bottomrow = 29
chart_line.charttype = excelcharttype.line
chart_line.charttitle = "销售趋势分析"
chart_line.charttitlearea.isbold = true
chart_line.charttitlearea.size = 12
chart_line.primarycategoryaxis.title = "地区"
chart_line.primaryvalueaxis.title = "销售额 (万元)"

wb.savetofile("saleschart_line.xlsx")
wb.dispose()
print("折线图创建完成:saleschart_line.xlsx")

工作表预览:

说明
折线图能清晰显示不同地区产品的销售变化趋势,便于管理者快速发现数据波动。

5. 创建饼图:展示产品销售占比

饼图适合展示各产品在总销售中的占比:

from spire.xls import workbook, excelcharttype

wb = workbook()
wb.loadfromfile("salesdata.xlsx")
sheet = wb.worksheets[0]

chart_pie = sheet.charts.add()
chart_pie.datarange = sheet.range["b2:c7"]  # 产品与销售额
chart_pie.seriesdatafromrange = false
chart_pie.leftcolumn = 1
chart_pie.toprow = 10
chart_pie.rightcolumn = 8
chart_pie.bottomrow = 30
chart_pie.charttype = excelcharttype.pie
chart_pie.charttitle = "产品销售占比"
chart_pie.charttitlearea.isbold = true
chart_pie.charttitlearea.size = 12

# 显示类别和百分比
chart_pie.series[0].datapoints.defaultdatapoint.datalabels.hascategoryname = true
chart_pie.series[0].datapoints.defaultdatapoint.datalabels.haspercentage = true

wb.savetofile("saleschart_pie.xlsx")
wb.dispose()
print("饼图创建完成:saleschart_pie.xlsx")

工作表预览:

说明
饼图直观显示不同产品在总销售中的份额,便于分析主力产品和市场分布。

6. 创建气泡图:三维数据可视化

气泡图可同时展示三个维度,例如地区、产品销售额及利润率:

from spire.xls import workbook, excelcharttype

wb = workbook()
wb.loadfromfile("salesdata.xlsx")
sheet = wb.worksheets[0]

# 增加利润率列
profit_rates = [0.15, 0.12, 0.13, 0.10, 0.14, 0.11]
for i, rate in enumerate(profit_rates, start=2):
    sheet.range[i, 4].numbervalue = rate
sheet.range[1, 4].text = "利润率"

chart_bubble = sheet.charts.add(excelcharttype.bubble)
chart_bubble.datarange = sheet.range["b1:d7"]
chart_bubble.seriesdatafromrange = false
chart_bubble.series[0].bubbles = sheet.range["d2:d7"]  # 气泡大小
chart_bubble.leftcolumn = 1
chart_bubble.toprow = 10
chart_bubble.rightcolumn = 11
chart_bubble.bottomrow = 29
chart_bubble.charttitle = "销售额与利润率气泡图"
chart_bubble.charttitlearea.isbold = true
chart_bubble.charttitlearea.size = 12

wb.savetofile("saleschart_bubble.xlsx")
wb.dispose()
print("气泡图创建完成:saleschart_bubble.xlsx")

工作表预览:

说明
气泡图不仅展示销售额,还通过气泡大小体现利润率,实现多维数据可视化。

7. 技术细节总结与关键类方法概览

在前面的章节中,我们展示了如何使用 free spire.xls for python 创建柱状图、折线图、饼图和气泡图。从技术实现角度来看,图表创建的核心流程可以总结为以下几个关键步骤:

python excel 图表创建步骤总结

  • 准备数据将业务数据写入 excel 工作表。数据格式和区域必须符合图表要求,例如数值列用于 y 轴,分类列用于 x 轴或类别。
  • 添加图表对象使用 sheet.charts.add() 创建图表对象,并通过 chart.datarange 指定数据来源。
  • 设置图表类型与位置通过 chart.charttype 选择图表类型(如柱状图、折线图、饼图、气泡图),使用 leftcolumntoprowrightcolumnbottomrow 精确定位图表在工作表中的位置。
  • 配置标题与轴信息设置 chart.charttitleprimarycategoryaxis.titleprimaryvalueaxis.title 等属性,为图表和坐标轴添加标题,并可设置字体、大小和加粗。
  • 美化图表设置系列颜色 cs.format.fill.forecolor、数据标签 datalabels.hasvalue、图例位置等,增强可读性和视觉效果。
  • 保存文件使用 wb.savetofile() 将生成的图表保存到指定文件。

关键类、方法与属性

类 / 方法 / 属性说明
workbookexcel 工作簿对象,支持创建、加载和保存文件
workbook.loadfromfile()从本地文件加载 excel 工作簿
workbook.savetofile()保存 excel 文件到指定路径
worksheet表示单个工作表,是操作数据和图表的主体对象
sheet.range[row, col]获取或设置指定单元格的内容
sheet.charts.add()在工作表中创建新的图表对象
chart.datarange指定图表的数据源区域
chart.seriesdatafromrange设置系列数据的方向(按行或按列)
chart.charttype设置图表类型(柱状图、折线图、饼图、气泡图等)
chart.charttitle设置图表标题文本
chart.primarycategoryaxis.title设置 x 轴标题
chart.primaryvalueaxis.title设置 y 轴标题

通过理解上述关键类、方法和属性,你可以灵活地创建各种类型的图表,并根据业务需求进行精细定制。掌握这些技术细节,能让你在实际项目中快速生成高质量、可读性强的 excel 可视化报表,同时保持代码简洁和可维护性。

总结

本文以实际业务数据为例,展示了如何使用 free spire.xls for python 在 excel 中创建柱状图、折线图、饼图和气泡图,实现数据的直观可视化。通过编程方式生成图表,不仅避免了手动操作的繁琐和易错问题,还能轻松应对批量报告和复杂数据分析需求。

掌握这一技能后,你可以将数据分析与报告生成完全自动化,从而节省时间,提高效率,并为决策提供可靠的可视化支持。结合 free spire.xls 的其他功能,如条件格式、数据验证和公式操作,可以进一步打造智能化的 excel 自动化工作流,让企业的数据价值发挥到最大。

以上就是使用python在excel工作表中创建图表的实现步骤的详细内容,更多关于python excel创建图表的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com