在上篇推文《Python操作Excel的Xlwings教程(六)》重點(diǎn)介紹了字體和單元格一些設(shè)置的知識(shí)點(diǎn)。大家在使用Xlwings對(duì)Excel進(jìn)行操作的時(shí)候棉浸,可以參考其中的一些案例娘扩。
這期推文我們來(lái)簡(jiǎn)單看一下Chart的一些設(shè)置往踢,在Xlwings中的Chart是一個(gè)對(duì)象义桂。
微軟官方開(kāi)發(fā)文檔
https://docs.microsoft.com/zh-cn/office/vba/api/excel.chart(object)
有相應(yīng)的說(shuō)明渊鞋。
一丰歌、數(shù)據(jù)準(zhǔn)備
假設(shè)我們?cè)?.xlsx的Sheet1頁(yè)中有以下的數(shù)據(jù):
有三列數(shù)據(jù)惰帽,依次是日期,A銷量和B銷量召噩。
二母赵、制作表格
我們使用上表的數(shù)據(jù)來(lái)制作表格,代碼如下:
sheet = xw.Book('1.xlsx').sheets[0]
chart = sheet.charts.add()
#數(shù)據(jù)源:sheet.range('A1:C7')具滴,或者sheet.range('A1').expand()
chart.set_source_data(sheet.range('A1').expand())
chart.chart_type = 'line' #線形
title='商品銷量' #標(biāo)題名稱
chart.api[1].SetElement(2) #顯示標(biāo)題
chart.api[1].ChartTitle.Text =title #設(shè)置標(biāo)題名稱
chart.api[1].SetElement(302) #在軸下方顯示主要類別軸標(biāo)題凹嘲。
chart.api[1].Axes(1).AxisTitle.Text = "日期" #橫軸標(biāo)題名稱
chart.api[1].SetElement(311) #在軸旁邊顯示主要類別的軸標(biāo)題。
chart.api[1].Axes(2).AxisTitle.Text = "銷量" #縱軸標(biāo)題名稱
運(yùn)行以后我們得到以下的圖表:
三抵蚊、圖標(biāo)設(shè)置
有小伙伴私信想將上述的右邊的圖表說(shuō)明轉(zhuǎn)到圖表的下面施绎,也就是這樣:
這個(gè)怎么操作呢溯革?在Xlwings官網(wǎng)中我們沒(méi)有做找到相應(yīng)的說(shuō)明贞绳,那么我們就要借助api的方法和VBA來(lái)進(jìn)行相應(yīng)的操作了,但是我們不知道在VBA中對(duì)應(yīng)的方法和屬性是什么致稀?
不過(guò)沒(méi)有關(guān)系冈闭,我們可以使用錄制宏來(lái)觀察。具體如下:
Step_1: 點(diǎn)擊Excel的“開(kāi)發(fā)工具”抖单,點(diǎn)擊“錄制宏”萎攒,點(diǎn)擊“確定”。
Step_2: 選中圖例說(shuō)明:
Step_3:右鍵矛绘,點(diǎn)擊“圖例格式”
Step_4:右邊我們看到了設(shè)置圖例格式耍休,我們選中“靠下”:
之后,我們看到表格已經(jīng)發(fā)生變化:
Step_5:查看VBA代碼:
通過(guò)上述VBA代碼我們就可以看到相應(yīng)的函數(shù)货矮,我們來(lái)解釋一下代碼:
第一行代碼的意思是選中這個(gè)表格的Legend羊精;
第二行代碼時(shí)將這個(gè)選中的Legend的Position設(shè)置為xlBottom。
那么在Xlwings中我們的xlBottom的值為多少呢囚玫?
請(qǐng)看這個(gè)VBA官網(wǎng)的說(shuō)明喧锦,鏈接如下:
https://docs.microsoft.com/zh-cn/office/vba/api/excel.xllegendposition
?
至此读规,我們就可以使用代碼進(jìn)行設(shè)置了:
chart.api[1].Legend.Position = -4107
即只需要在上述的代碼的最后加上這一行代碼就可以完成設(shè)置,當(dāng)然了燃少,使用其他的Value值就可以完成不同的設(shè)置束亏。
四、總結(jié)
以上就是Xlwings中設(shè)置Chart屬性的一些方法阵具,是不是很簡(jiǎn)單碍遍?縱觀全文,干貨還是滿滿的阳液。
最后有一句重要的話雀久,大家要學(xué)會(huì)看查看一些文檔啊,一定要學(xué)會(huì)呀趁舀!