Python實(shí)例|自定義Excel柱形圖柱子的填充顏色和邊框顏色(附源碼+限免視頻)
使用Python開(kāi)發(fā)微軟的Excel通常需要使用第三方庫,如xlrd、xlwt、xlutils、xlwings、win*2com、openpyxl、pandas等,各種第三方庫都有自己獨特的功能和缺陷,因此在采用這些第三方庫之前需要慎重考慮。
如:xlrd只能讀取在Excel文件中的數據;xlwt只能在Excel文件中寫(xiě)入數據;xlutils雖然可以讀寫(xiě)Excel文件的數據,但是它依賴(lài)于xlrd和xlwt;xlwings可以從Excel中調用Python,也可在Python中調用Excel;win*2com可以獨立讀寫(xiě)Excel文件的數據;openpyxl也可以獨立讀寫(xiě)Excel文件的數據;pandas能夠讀寫(xiě)在Excel文件中的數據,但是它需要xlrd/xlwt/openpyxl/xlsxwriter等庫的配合。
下面介紹兩個(gè)Python輔助Excel實(shí)例,分別是自定義柱形圖柱子的填充顏色,和自定義柱形圖柱子的邊框顏色。
實(shí)例:自定義柱形圖柱子的填充顏色
0*
實(shí)例功能
此案例主要通過(guò)使用指定的顏色設置柱形圖指定柱子(myColumns[0])的填充顏色(myColumns[0].graphicalProperties.solidFill屬性),從而實(shí)現在柱形圖中自定義各個(gè)柱子的填充顏色。當運行此案例的Python代碼(A***.py文件)之后,在“員工表.xlsx”文件中將根據員工表的員工人數創(chuàng )建柱形圖,并使用指定的顏色自定義柱形圖的各個(gè)柱子的填充顏色,如圖*所示。
■ 圖*
02
實(shí)現代碼
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)各個(gè)柱子的填充顏色
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*
代碼說(shuō)明
在上面這段代碼中,myColumns[*].graphicalProperties.solidFill ="BB22**"表示使用深紅色(BB22**)填充第2個(gè)柱子(myColumns[*])。
此案例的源文件是MyCode\A***\A***.py。
掃碼觀(guān)看講解視頻
實(shí)例:自定義柱形圖柱子的邊框顏色
0*
實(shí)例功能
此案例主要通過(guò)使用指定的顏色設置柱形圖指定柱子(myColumns[0])的邊框顏色(myColumns[0].graphicalProperties.line.solidFill屬性),從而實(shí)現在柱形圖中自定義各個(gè)柱子的邊框顏色。當運行此案例的Python代碼(A***.py文件)之后,在“員工表.xlsx”文件中將根據員工表的員工人數創(chuàng )建柱形圖,并使用指定的顏色自定義柱形圖的各個(gè)柱子的邊框顏色,如圖2所示。
■ 圖2
02
實(shí)現代碼
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
#取消第*個(gè)柱子的填充顏色
myColumns[ 0].graphicalProperties.noFill= True
#設置第*個(gè)柱子的邊框顏色為黑色
myColumns[ 0].graphicalProperties.line.solidFill= "000000"
#取消第2個(gè)柱子的填充顏色
myColumns[ *].graphicalProperties.noFill= True
#設置第2個(gè)柱子的邊框顏色為紅色
myColumns[ *].graphicalProperties.line.solidFill= "FF0000"
#取消第*個(gè)柱子的填充顏色
myColumns[ 2].graphicalProperties.noFill= True
#設置第*個(gè)柱子的邊框顏色為綠色
myColumns[ 2].graphicalProperties.line.solidFill= "00FF00"
#取消第*個(gè)柱子的填充顏色
myColumns[ *].graphicalProperties.noFill= True
#設置第*個(gè)柱子的邊框顏色為藍色
myColumns[ *].graphicalProperties.line.solidFill= "0000FF"
#取消第*個(gè)柱子的填充顏色
myColumns[ *].graphicalProperties.noFill= True
#設置第*個(gè)柱子的邊框顏色為青色
myColumns[ *].graphicalProperties.line.solidFill= "00FFFF"
mySheet.add_chart(myBarChart, "C*")
myBook.save( '結果表-員工表.xlsx')
0*
代碼說(shuō)明
在上面這段代碼中,myColumns[0].graphicalProperties.noFill=True表示取消第*個(gè)柱子的填充顏色。myColumns[0].graphicalProperties.line.solidFill="000000"表示使用黑色繪制第*個(gè)柱子的邊框。
此案例的源文件是MyCode\A***\A***.py。
0*
補充說(shuō)明
02*yin.com/python/python-basic-syntax.html)。
掃碼觀(guān)看講解視頻
0*
源代碼下載
關(guān)注*,后臺回復關(guān)鍵詞 “Python輔助ExcelV*82” 即可獲得完整源代碼。
0*
參考書(shū)籍
《Python輔助Word+Excel:讓辦公更高效》
作者:羅帥、羅斌
定價(jià):99.8元
掃碼優(yōu)惠購書(shū)
**7個(gè)典型辦公場(chǎng)景
問(wèn)題描述+解決方案+真實(shí)源碼+效果截圖
Python+Word+Excel實(shí)現辦公自動(dòng)化,
成倍提高辦公效率
優(yōu)化數據分析,讓工作省點(diǎn)力!
告別重復勞動(dòng),蛻變職場(chǎng)精英!