Py学习  »  Python

Python自动化办公之 Excel 自动绘制图表

Python绿色通道 • 3 年前 • 465 次点击  

每天学Python新技能

后台回复【大礼包】送你Python自学大礼包


今天的主题是 Excel,相信大家都比较熟悉吧。而且我相信,大家在日常使用 Excel 的时候,肯定会遇到很多重复繁琐的工作,因为我也同样遇到过。这个时候我通常都会思考下,有没有办法让繁琐的事情变得简单些呢,毕竟我们是 Python 使用者嘛!

所以我个人在工作当中还是积累来一些 Excel 自动化相关都经验都,在后面都文章当中,我会陆续推出 Excel、PDF 等等相关软件都自动化内容,感兴趣都同学记得来看哦!

今天我们d的主题就是为 Excel 自动添加图表,实现起来很简单,保证五分钟完事儿!





基本原理

这里我们使用 xlsxwriter 这个库,简直不要太强大!

首先我们先来看下如何通过这个库来编辑 Excel 呢




    
import xlsxwriter

# 创建一个excel
workbook = xlsxwriter.Workbook("chart.xlsx")
# 创建一个sheet
worksheet = workbook.add_worksheet()

对于创建 Excel 和新增 sheet 都没啥说的,基本套路搞定!

# 自定义样式,加粗
bold = workbook.add_format({'bold'1})

# 向excel中写入数据,建立图标时要用到
headings = ['Number''testA''testB']
data = [
    ['2020-9-1''2020-9-2''2020-9-3''2020-9-4''2020-9-5''2020-9-6'],
    [104050201050],
    [306070504030],
]

# 写入表头
worksheet.write_row('A1', headings, bold)

# 写入数据
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
worksheet.write_column('C2', data[2])

这里,我们定义了一些测试数据,然后通过 write_row 函数写入表头,通过 write_column 函数来按列写入数据,此时我们得到的 Excel 应该是如下的



画图开始

下面就是重点了,我们要看是根据测试数据来画图表了

# 创建一个柱状图(line chart)
chart_col = workbook.add_chart({'type''line'})

# 配置第一个系列数据
chart_col.add_series({
    # 这里的sheet1是默认的值,因为我们在新建sheet时没有指定sheet名
    # 如果我们新建sheet时设置了sheet名,这里就要设置成相应的值
    'name''=Sheet1!$B$1',
    'categories''=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$B$2:$B$7',
    'line': {'color''red'},
})

# 配置第二个系列数据
chart_col.add_series({
    'name''=Sheet1!$C$1',
    'categories':  '=Sheet1!$A$2:$A$7',
    'values':   '=Sheet1!$C$2:$C$7',
    'line': {'color''yellow'},
})

通过 add_chart 函数来新增一个图表,type 就是 图表都类型
而对于 add_series 就是具体都图表数据信息了,相信也是一目了然的!

最后再设置 X、Y 轴的信息,并设置下图表所在的位置就完成了

# 设置图表的title 和 x,y轴信息
chart_col.set_title({'name''The test Analysis'})
chart_col.set_x_axis({'name''Test number'})
chart_col.set_y_axis({'name':  'Sample length (mm)'})

# 设置图表的风格
chart_col.set_style(1)

# 把图表插入到worksheet并设置偏移
worksheet.insert_chart('A10', chart_col, {'x_offset'25'y_offset'10})

workbook.close()



当然的对于画柱状图,饼图等都是类似的,我们也就不再重复了。

下一次,我们就来实现根据已有的数据,如何自动生成我们需要的图表,而且如果我想自动发送给某些人呢,能不能全程自动化搞定呢!

好了,今天就分享到这里,原创不易,给个“在看”再走吧!

END



  1. 提供代码!直接可以运行,Chatgpt代码分享

  2. GitHub 又一黑科技项目诞生,成功复现 ChatGPT 完整流程!

  3. ChatGPT推荐的Python工具书,豆瓣9.1分,太赞了!

  4. 太赞了!用ChatGPT找到的Python学习资料

  5. 第一批因ChatGPT坐牢的人,已经上路了



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/152525