零基础教你使用Python一键生成Excel图表

 更新时间:2026年04月07日 08:11:50   作者:小庄-Python办公  
在日常办公和数据分析中,Excel图表是我们展示数据最直观的工具,本文专为零基础编程新手设计,将系统地带你了解如何使用Python在Excel中制作柱状图,告别繁琐的手工操作

引言

在日常办公和数据分析中,Excel图表是我们展示数据最直观的工具。然而,当面对每天、每周重复性的报表制作时,手动框选数据、插入图表、调整格式不仅耗时,还容易出错。

这正是Python发挥其“自动化魔法”的绝佳场景。通过Python,我们可以编写一段简短的代码,让计算机自动读取数据、生成精美的图表并保存为Excel文件。不仅效率极高,而且生成的图表是原生的Excel图表(意味着你打开Excel后依然可以手动修改它)。

本文专为零基础编程新手设计。我们将系统地带你了解如何使用Python在Excel中制作柱状图,告别繁琐的手工操作。

准备工作

在开始写代码之前,我们需要准备好开发环境。

安装Python:请确保你的电脑上已经安装了Python(建议版本3.8及以上)。你可以从Python官网下载并安装。

安装第三方库 openpyxl

openpyxl 是Python中操作Excel文件(.xlsx)最流行且最易学的库之一。它完美支持读取、写入以及创建图表

打开你的终端(Windows的cmd/PowerShell,或Mac的Terminal),输入以下命令并回车:

pip install openpyxl

核心实战:分步指南

我们将通过一个具体的业务场景来学习:为一家公司的“第一季度各产品销量”制作一张柱状图

第一步:创建Excel工作簿并写入数据

首先,我们需要用Python创建一个新的Excel文件,并在里面填入我们的基础数据。

from openpyxl import Workbook

# 1. 创建一个新的工作簿和默认工作表
wb = Workbook()
ws = wb.active
ws.title = "第一季度销量"

# 2. 准备我们的数据(表头 + 数据行)
data = [
    ['产品名称', '一月销量', '二月销量', '三月销量'],
    ['产品A', 150, 200, 250],
    ['产品B', 120, 180, 210],
    ['产品C', 300, 250, 220],
]

# 3. 将数据逐行写入工作表
for row in data:
    ws.append(row)

第二步:引入图表模块

openpyxl 中,图表功能是由特定的模块负责的。为了画柱状图,我们需要引入 BarChart(柱状图)和 Reference(数据引用范围)。

from openpyxl.chart import BarChart, Reference

第三步:创建图表对象并配置数据源

这一步是核心。我们需要告诉图表两件事:数据在哪里(数字),以及类别标签在哪里(产品A、B、C)。

# 1. 创建柱状图对象
chart = BarChart()
chart.title = "第一季度产品销量对比图"
chart.y_axis.title = "销量 (件)"
chart.x_axis.title = "产品名称"

# 2. 定义数据范围 (Reference)
# 数据包含了第2列到第4列(一月到三月),第1行到第4行
data_ref = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=4)

# 3. 定义类别标签范围 (X轴显示的文字)
# 标签在第1列(产品名称),第2行到第4行
cats_ref = Reference(ws, min_col=1, min_row=2, max_row=4)

# 4. 将数据和标签添加到图表中
# titles_from_data=True 表示将数据范围的第一行(一月销量等)作为图例名称
chart.add_data(data_ref, titles_from_data=True)
chart.set_categories(cats_ref)

第四步:将图表插入到工作表并保存

图表配置好后,它还只是存在于内存中。我们需要把它放在Excel表格的具体位置,并将文件保存到电脑上。

# 将图表插入到 E6 单元格的位置
ws.add_chart(chart, "E6")

# 保存为真正的Excel文件
wb.save("sales_chart.xlsx")
print("Excel图表生成成功!")

完整代码示例

为了方便你复制和练习,这里将上面的步骤整合成一段完整的、可直接运行的代码:

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

def create_excel_chart():
    # 1. 初始化工作簿与数据
    wb = Workbook()
    ws = wb.active
    ws.title = "第一季度销量"

    data = [
        ['产品名称', '一月销量', '二月销量', '三月销量'],
        ['产品A', 150, 200, 250],
        ['产品B', 120, 180, 210],
        ['产品C', 300, 250, 220],
    ]

    for row in data:
        ws.append(row)

    # 2. 创建柱状图并设置标题
    chart = BarChart()
    chart.title = "第一季度产品销量对比图"
    chart.style = 10  # 设置图表的内置样式
    chart.y_axis.title = "销量 (件)"
    chart.x_axis.title = "产品名称"

    # 3. 框选数据和标签范围
    # 数据:从第2列到第4列,第1行到第4行
    data_ref = Reference(ws, min_col=2, min_row=1, max_col=4, max_row=4)
    # 标签:第1列,第2行到第4行
    cats_ref = Reference(ws, min_col=1, min_row=2, max_row=4)

    # 4. 绑定数据到图表
    chart.add_data(data_ref, titles_from_data=True)
    chart.set_categories(cats_ref)

    # 5. 插入图表并保存文件
    ws.add_chart(chart, "E6")
    wb.save("sales_chart.xlsx")
    print("自动化任务完成:sales_chart.xlsx 已生成!")

if __name__ == "__main__":
    create_excel_chart()

运行这段代码后,你的文件夹里会出现一个 sales_chart.xlsx 文件。打开它,你会看到漂亮且规范的柱状图!

常见避坑指南

对于刚接触Python操作Excel的新手,以下几个坑请务必避开:

  • PermissionError (权限拒绝报错):这是最常见的新手错误!如果你在运行Python代码时,正在用Excel软件打开着那个目标文件(例如 sales_chart.xlsx),Python会因为无法获取写入权限而报错。解决办法:每次运行代码前,请确保关闭对应的Excel文件。
  • 行列索引从 1 开始:在Python的常规列表或数组中,索引是从 0 开始的。但在 openpyxl 中,为了和Excel的习惯保持一致,行和列的索引都是从 1 开始的(A列=1,第一行=1)。在设置 Reference 范围时千万不要写错。
  • 图表样式的选择chart.style = 10 代表使用了Excel内置的第10套图表配色方案。你可以尝试修改为 148 之间的任意数字,探索不同的视觉效果。

进阶资源与结语

恭喜你!你已经成功掌握了使用Python制作原生Excel图表的基础技能。这不仅能帮你省下大量复制粘贴的时间,还为你打开了自动化办公的大门。

当你熟悉了 openpyxl 之后,如果你希望处理百万级的数据或者进行更复杂的数据分析,建议你了解以下进阶资源:

  • openpyxl 官方文档:学习如何制作折线图 (LineChart)、饼图 (PieChart) 以及散点图 (ScatterChart)。
  • Pandas 库:Python数据分析领域的王者,配合 XlsxWriter 引擎,可以实现极速的数据清洗并一键输出带图表的报表。

行动起来吧! 复制上面的完整代码,在你的电脑上运行一次,亲眼见证Python为你自动绘制出第一张Excel图表。这就是你迈向“办公自动化达人”的第一步!

到此这篇关于零基础教你使用Python一键生成Excel图表的文章就介绍到这了,更多相关Python生成Excel图表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python类属性与实例属性用法分析

    Python类属性与实例属性用法分析

    这篇文章主要介绍了Python类属性与实例属性用法,实例分析了Python类属性与实例属性的功能、定义与使用技巧,需要的朋友可以参考下
    2015-05-05
  • python使用pymongo与MongoDB基本交互操作示例

    python使用pymongo与MongoDB基本交互操作示例

    这篇文章主要介绍了python使用pymongo与MongoDB基本交互操作,结合实例形式详细分析了python基于pymongo库实现与MongoDB基本交互相关操作技巧与注意事项,需要的朋友可以参考下
    2020-04-04
  • Python数据拟合实现最小二乘法示例解析

    Python数据拟合实现最小二乘法示例解析

    这篇文章主要为大家介绍了Python数据拟合实现最小二乘法的示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-10-10
  • Python爬虫beautifulsoup4常用的解析方法总结

    Python爬虫beautifulsoup4常用的解析方法总结

    今天小编就为大家分享一篇关于Python爬虫beautifulsoup4常用的解析方法总结,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Python实现爬取天气数据并可视化分析

    Python实现爬取天气数据并可视化分析

    这篇文章主要和大家分享一个用Python实现的小功能:获取天气数据,进行可视化分析,带你直观了解天气情况!感兴趣的小伙伴可以学习一下
    2022-02-02
  • anaconda中Conda创建虚拟环境的实现步骤

    anaconda中Conda创建虚拟环境的实现步骤

    在Anaconda中,可以使用conda命令来创建和管理虚拟环境,本文主要介绍了anaconda中Conda创建虚拟环境的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • python包管理工具pip全面解析

    python包管理工具pip全面解析

    这篇文章主要为大家介绍了python包管理工具pip的全面解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Python内置函数int()的具体使用

    Python内置函数int()的具体使用

    这篇文章主要为大家介绍了Python内置函数int()的具体使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 利用Python实现快速批量转换HEIC文件

    利用Python实现快速批量转换HEIC文件

    HEIC 是苹果采用的新的默认图片格式,它能在不损失图片画质的情况下,减少图片大小。本篇文章将使用 Python 批量实现 HEIC 图片文件的格式转换,需要的可以参考一下
    2022-07-07
  • 用Python实现服务器中只重载被修改的进程的方法

    用Python实现服务器中只重载被修改的进程的方法

    这篇文章主要介绍了用Python实现服务器中只重载被修改的进程的方法,包括用watchdog来检测文件的变化等,实现起来充分体现了Python作为动态语言的灵活性,强烈推荐!需要的朋友可以参考下
    2015-04-04

最新评论