接上文Python开发从零开始-50.13-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。
(3)插入图表
openpyxl 支持丰富的图表类型,例如:面积图、条形图、柱状图、散点图和饼状图等,通过这些图表可以让 Excel 文件更加直观和易于理解,特别适合数据分析、比较和展示等场景。
1)插入图表的步骤
① 准备数据:在工作表内插入数据用于图表;
② 创建图表:创建图表对象(如:柱状图 BarChart),并对标题、分类和样式等选项进行配置;
③ 数据引用:创建引用对象(Reference)引用工作表中数据;
④ 图表添加数据:使用图表对象的 add_data() 方法加载数值轴数据引用对象,set_categories() 方法加载分类轴数据引用对象;
⑤ 插入图表:使用工作表对象的 add_chart() 方法插入图表。
2)准备数据
根据需要在工作表中插入数据,例如:某数码销售店 2006 年前四个月电子产品销售量数据如下:
from openpyxl import Workbookwb = Workbook()ws = wb.active# 准备数据rows = [('月份', '手机', '平板', '笔记本'),('一月', 100, 131, 86),('二月', 180, 210, 155),('三月', 86, 96, 71),('四月', 92, 80, 73)]# 在工作表中添加数据for row in rows:ws.append(row)
3)创建图表对象
openpyxl.chart 子模块及其下子模块中包含了大量图表对象,常用基础图表主要包括:
BarChart / BarChart3D:柱状图 / 3D柱状图,支持横向、纵向两种展示模式,适合对比不同分类的数值差异;
LineChart / LineChart3D:折线图 / 3D折线图,多用于展示数据随时间维度的变化趋势;
AreaChart / AreaChart3D:面积图 / 3D面积图,在折线图基础上填充区域,更直观体现数据总量的变化;
PieChart / PieChart3D:饼图 / 3D饼图,用于展示单组数据中各分类占总体的比例关系;
DoughnutChart:环形图,相当于带空心的饼图,支持同时展示多组数据的占比结构。
除基础图表还包括:
高级分析类图表:如 ScatterChart(散点图)、BubbleChart(气泡图)、RadarChart(雷达图)等;
其他图表:BubbleChart(气泡图)、ComboChart(组合图)等。
openpyxl.chart.bar_chart.BarChart 对象用于表示柱状图。柱状图又称柱形图、条形图,它是一种以矩形的高度来展示数据大小的图表类型,适合比较不同类别之间的数据差异,直观地了解数据的分布情况,揭示数据变化趋势,辅助预测。
本文以 BarChart 对象为例,介绍如何在工作表插入图表。BarChart 对象通常使用其默认构造方法创建。
from openpyxl.chart import BarChart# 创建柱状图对象chart = BarChart()
openpyxl.chart 子模块在其顶层包的 __init__.py 文件中,将常用图表和相关对象进行了别名导出,所以虽然 BarChart 对象原生定义于:
openpyxl.chart.bar_chart.BarChart
但是可以使用以下语句导入:
import openpyxl.chart.BarChart 这是典型的模块层级的别名导出设计,主要是方便开发者快速导入。
BarChart 对象的常用属性包括:
title:可以设置顶部图表的主标题;
x_axis:配置 X 轴(分类轴)属性的对象,可以设置轴标题、刻度显示、网格线是否可见等细节;
y_axis:配置 Y 轴(数值轴)属性的对象,可以设置轴标题、刻度显示、网格线是否可见等细节;
style:全局图表样式配置项,用于快速一键套用Excel原生预设的视觉风格。它接受 1~48 之间的整数作为值,对应 Excel 内置的 48 种专业图表样式,不同数值会自动匹配不同的配色方案、渐变效果、边框粗细和背景装饰。
根据工作表中的数据,BarChart 对象的属性配置代码示例如下:
# 设置柱状图主标题chart.title = "月份销售量对比"# 设置 y 轴(数字轴)标题chart.y_axis.title = "销售量"# 设置 x 轴(分类轴)标题chart.x_axis.title = "月份统计"
受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件的相关知识。
夜雨聆风