对openpyxl中【工作簿】、【工作页】、【行 / 列】与【单元格】的概念存在疑惑的可以参考《Excel工作簿、工作页、行列、单元格介绍》。
1、折线图
折线图有着可以显示随时间(根据常用比例设置)而变化的连续数据等优点,因此非常适用于显示在相等时间间隔下数据的趋势。我们可以将排列在工作表的列或行中的数据绘制到折线图中。在折线图中,类别数据沿水平轴均匀分布,所有值数据沿垂直轴均匀分布。
1.1、创建折线图对象
对于面向对象的角度而言,我们需要绘制一个折线图,所以需要创建一个可以绘制折线图的对象,去辅助我们绘制折线图。openpyxl
库下的chart
模块为我们提供了LineChart
类,去构造我们需要的折线图对象。我们首先观察一下LineChart
类的构造方法:
def __init__(self, hiLowLines=None, upDownBars=None,
marker=None, smooth=None, extLst=None, **kw):
self.hiLowLines = hiLowLines
self.upDownBars = upDownBars
self.marker = marker
self.smooth = smooth
self.x_axis = TextAxis()
self.y_axis = NumericAxis()
super(LineChart, self).__init__(**kw)
其中没有我们必要初始化的参数,所以我们可以直接空参构造一个折线图对象。
from openpyxl import load_workbook
from openpyxl.chart import LineChart
wb = load_workbook('文件路径.xlsx')
ws = wb.active
# 构建LineChart对象
chart = LineChart()
1.2、绘制数据部分
openpyxl库下的chart包提供了add_data
方法,可通过用户提供的数据,自动绘制折线图,那么如何使用该方法呢,首先我们先看一下该方法的源码:
def add_data(self, data, from_rows=False, titles_from_data=False):
if not isinstance(data, Reference):
data