
導讀:沒有什麼問題是Python解決不了的。
有位朋友在群裡面諮詢了一個問題。大致意思如圖所示:

有人提議用vba,但是不得不說,沒有學過vba的朋友,會覺得vba用起來很困難。那還不容易,直接上Python,沒有什麼問題是Python解決不了的。
哈哈,說的有點誇張了。但是上述這個問題,用Python解決是絕對沒問題。
01 解題思路
我們先來看看這個資料,長啥樣?

一個Excel有3個sheet表,每個sheet表中有一個數據。我們想利用這3個數據,繪製一條折線圖。
我的思路大致是這樣,整個步驟如下:
-
新建一個新的Excel表格;
-
讀取該測試資料,並讀取每個sheet表中的值;
-
將上述讀取到的資料,寫入新建的Excel表格中;
-
進行圖形的繪製;
02 完整程式碼
有了上述思路,我們直接上程式碼,程式碼中給大家進行了詳細的註釋。
# 匯入相關庫
from
openpyxl
import
load_workbook,Workbook
from
openpyxl.chart
import
LineChart, Reference
# 新建Excel表格
wb = Workbook()
ws = wb.active
ws.cell(row=
1
,column=
1
).value =
"銷售額"
# 讀取測試表格中的資料,並寫入到新建的Excel表格中
wb1 = load_workbook(
"測試.xlsx"
)
for
index,value
in
enumerate(wb1.sheetnames):
ws1 = wb1[value]
ws.cell(row=index+
2
,column=
1
).value = ws1.cell(row=
1
,column=
1
).value
# 進行圖形的繪製
chart = LineChart()
data = Reference(ws,min_row=
1
,max_row=
4
,min_col=
1
, max_col=
1
)
chart.add_data(data,titles_from_data=
True
)
chart.title =
"不同月份的銷售額"
chart.y_axis.scaling.min =
9
chart.y_axis.scaling.max =
14
ws.add_chart(chart,
"D1"
)
wb.save(
"最新.xlsx"
)
最終效果如圖所示:


延伸閱讀👇

延伸閱讀《利用Python進行資料分析》