Python实例|自定义Excel柱形图柱子的填充颜色和边框颜色(附源码+限免视频)
使用Python开发微软的Excel通常需要使用第三方库,如xlrd、xlwt、xlutils、xlwings、win*2com、openpyxl、pandas等,各种第三方库都有自己独特的功能和缺陷,因此在采用这些第三方库之前需要慎重考虑。
如:xlrd只能读取在Excel文件中的数据;xlwt只能在Excel文件中写入数据;xlutils虽然可以读写Excel文件的数据,但是它依赖于xlrd和xlwt;xlwings可以从Excel中调用Python,也可在Python中调用Excel;win*2com可以独立读写Excel文件的数据;openpyxl也可以独立读写Excel文件的数据;pandas能够读写在Excel文件中的数据,但是它需要xlrd/xlwt/openpyxl/xlsxwriter等库的配合。
下面介绍两个Python辅助Excel实例,分别是自定义柱形图柱子的填充颜色,和自定义柱形图柱子的边框颜色。
实例:自定义柱形图柱子的填充颜色
0*
实例功能
此案例主要通过使用指定的颜色设置柱形图指定柱子(myColumns[0])的填充颜色(myColumns[0].graphicalProperties.solidFill属性),从而实现在柱形图中自定义各个柱子的填充颜色。当运行此案例的Python代码(A***.py文件)之后,在“员工表.xlsx”文件中将根据员工表的员工人数创建柱形图,并使用指定的颜色自定义柱形图的各个柱子的填充颜色,如图*所示。
■ 图*
02
实现代码
importopenpyxl
myBook=openpyxl.load_workbook( '员工表.xlsx')
mySheet=myBook.active
myBarChart=openpyxl.chart.BarChart
myBarChart.add_data(openpyxl.chart.Reference(mySheet,min_col= 2,
min_row= *,max_row= 8),titles_from_data= True)
myBarChart.set_categories(openpyxl.chart.Reference(mySheet,
min_col= *,min_row= *,max_row= 8))
myBarChart.legend= None
myBarChart.title= "使用柱形图展示华茂集团员工人数"
myBarChart.style= 2*
#自定义柱形图(myBarChart)各个柱子的填充颜色
myColumns=[openpyxl.chart.series.DataPoint(idx=i) fori inrange( *)]
myBarChart.series[ 0].data_points=myColumns
myColumns[ 0].graphicalProperties.solidFill= "FAE*D0"
myColumns[ *].graphicalProperties.solidFill= "BB22**"
myColumns[ 2].graphicalProperties.solidFill= "22DD22"
myColumns[ *].graphicalProperties.solidFill= "**2*0B"
myColumns[ *].graphicalProperties.solidFill= "9***02"
mySheet.add_chart(myBarChart, "C*")
myBook.save( '结果表-员工表.xlsx')
0*
代码说明
在上面这段代码中,myColumns[*].graphicalProperties.solidFill ="BB22**"表示使用深红色(BB22**)填充第2个柱子(myColumns[*])。
此案例的源文件是MyCode\A***\A***.py。
扫码观看讲解视频
实例:自定义柱形图柱子的边框颜色
0*
实例功能
此案例主要通过使用指定的颜色设置柱形图指定柱子(myColumns[0])的边框颜色(myColumns[0].graphicalProperties.line.solidFill属性),从而实现在柱形图中自定义各个柱子的边框颜色。当运行此案例的Python代码(A***.py文件)之后,在“员工表.xlsx”文件中将根据员工表的员工人数创建柱形图,并使用指定的颜色自定义柱形图的各个柱子的边框颜色,如图2所示。
■ 图2
02
实现代码
importopenpyxl
myBook=openpyxl.load_workbook( '员工表.xlsx')
mySheet=myBook.active
myBarChart=openpyxl.chart.BarChart
myBarChart.add_data(openpyxl.chart.Reference(mySheet,min_col= 2,
min_row= *,max_row= 8),titles_from_data= True)
myBarChart.set_categories(openpyxl.chart.Reference(mySheet,
min_col= *,min_row= *,max_row= 8))
myBarChart.legend= None
myBarChart.y_axis.majorGridlines= None
myBarChart.title= "使用柱形图展示华茂集团员工人数"
myColumns=[openpyxl.chart.series.DataPoint(idx=i) fori inrange( *)]
myBarChart.series[ 0].data_points=myColumns
#取消第*个柱子的填充颜色
myColumns[ 0].graphicalProperties.noFill= True
#设置第*个柱子的边框颜色为黑色
myColumns[ 0].graphicalProperties.line.solidFill= "000000"
#取消第2个柱子的填充颜色
myColumns[ *].graphicalProperties.noFill= True
#设置第2个柱子的边框颜色为红色
myColumns[ *].graphicalProperties.line.solidFill= "FF0000"
#取消第*个柱子的填充颜色
myColumns[ 2].graphicalProperties.noFill= True
#设置第*个柱子的边框颜色为绿色
myColumns[ 2].graphicalProperties.line.solidFill= "00FF00"
#取消第*个柱子的填充颜色
myColumns[ *].graphicalProperties.noFill= True
#设置第*个柱子的边框颜色为蓝色
myColumns[ *].graphicalProperties.line.solidFill= "0000FF"
#取消第*个柱子的填充颜色
myColumns[ *].graphicalProperties.noFill= True
#设置第*个柱子的边框颜色为青色
myColumns[ *].graphicalProperties.line.solidFill= "00FFFF"
mySheet.add_chart(myBarChart, "C*")
myBook.save( '结果表-员工表.xlsx')
0*
代码说明
在上面这段代码中,myColumns[0].graphicalProperties.noFill=True表示取消第*个柱子的填充颜色。myColumns[0].graphicalProperties.line.solidFill="000000"表示使用黑色绘制第*个柱子的边框。
此案例的源文件是MyCode\A***\A***.py。
0*
补充说明
02*yin.com/python/python-basic-syntax.html)。
扫码观看讲解视频
0*
源代码下载
关注*,后台回复关键词 “Python辅助ExcelV*82” 即可获得完整源代码。
0*
参考书籍
《Python辅助Word+Excel:让办公更高效》
作者:罗帅、罗斌
定价:99.8元
扫码优惠购书
**7个典型办公场景
问题描述+解决方案+真实源码+效果截图
Python+Word+Excel实现办公自动化,
成倍提高办公效率
优化数据分析,让工作省点力!
告别重复劳动,蜕变职场精英!