毫无疑问Excel是最便捷高效的可视化工具,它可以满足基本的日常工作中的图表需求。在openpyxl中也可以设置表格样式和画图表,基本上Excel里自带的表格样式和图表类型都覆盖了,在前三篇Excel读写、公式计算、格式设置内容的基础上,本篇来讲解一下如何设置表格样式和插入图表。
一、表格样式
也许大家使用Excel表格是奔着实用性的目的,很少使用表格样式,即使想可视化表达也会选择柱状图、折线图、饼图等图表。但实际上表格也可以设计的很美观,同样达到展示数据的目的。表格样式涉及一组单元格,这使得某些操作,比如在表格里单元格样式更改更容易些。
表格样式其实就是封装好的单元格格式的集合,包括字体、颜色、边框、大小、斜体、加粗、间距等等,是内置的设计好的样式,我们有时候既想保留原始数据又想突出显示就会选择使用表格样式。在表格格式内部可以统一处理数据,比如格式更改、数据修改、汇总计算等等。
在Excel中共有三类60种内置的表格样式,分别为浅色21种、中等色28种、深色11种,还可以自定义设置。openpyxl同样也提供表格样式设置。具体怎么操作呢?
和设置单元格格式步骤一样,先创建一个表格样式对象,设置好自己需要的参数,再把对象应用到数据区域上。
先导入案例数据,还是之前的数据集。
from openpyxl import Workbook, load_workbook
from openpyxl.worksheet.table import Table, TableStyleInfo
wbo = load_workbook(r"D:\7_Python\pyproject\testOrders7.xlsx")
wso = wbo.active
对数据套用表格样式:
#第一步,创建一个表格样式对象,给表格区域起个名字
tab = Table(displayName="Table1", ref="A1:F10")
#第二步设置样式,添加一个行列带有条纹的样式,样式类型为TableStyleMedium9
style = TableStyleInfo(name="TableStyleMedium9", showFirstColumn=False,
showLastColumn=False, showRowStripes=True, showColumnStripes=True)
#第三步应用样式,把设置的样式赋值给表格对象
tab.tableStyleInfo = style
#第四步样式生效,把表格对象添加到sheet里
wso.add_table(tab)
这里为什么要用.add_table的方法而不是直接生效呢?因为表格样式必须使用.add_table方法才能避免命名重复,确保表名是唯一的。默认情况下,创建表格样式的区域第一行和第二行必须包含字符串,否则就会出现以下报错:
可供选择的套用表格样式有哪些呢?