Py学习  »  Python

Python自动化操作Excel绘制条形图!

凹凸数据 • 4 年前 • 371 次点击  
人生苦短,快学Python!
今天,有位朋友在群里面咨询了一个问题。
大致意思如图所示:
有人提议用vba,但是不得不说,没有学过vba的朋友,会觉得vba用起来很困难。那还不容易,直接上Python,没有什么问题是Python解决不了的。
哈哈,说的有点夸张了。但是上述这个问题,用Python解决是绝对没问题。

解题思路

我们先来看看这个数据,长啥样?
一个Excel有3个sheet表,每个sheet表中有一个数据。我们想利用这3个数据,绘制一条折线图。
我的思路大致是这样,整个步骤如下:
  1. 新建一个新的Excel表格;
  2. 读取该测试数据,并读取每个sheet表中的值;
  3. 将上述读取到的数据,写入新建的Excel表格中;
  4. 进行图形的绘制;

完整代码

有了上述思路,我们直接上代码,代码中给大家进行了详细的注释。
# 导入相关库
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:自动化办公轻松实战》中,这种小知识点小案例数不尽数。其中第三章详细讲解了学习Python,可以自动化操作Excel的各种功能,仅一章就可以搞定Python报表自动化。

新书首周专享五折

快扫描下方海报上的二维码抢购吧!

本书有配套的完整代码、作者录制的重点学习视频、随书附赠的其他资料包,以及Python自动化办公学习路线图。

此外,购书即可加入读者群,与两位作者随时交流沟通!


点击这里,查看作者的新书
《快学Python》
!
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/137360