社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

如何用 Python 自动化办公实现 Excel 绘制图表?

AI科技大本营 • 2 年前 • 251 次点击  

作者 | 周萝卜

来源丨萝卜大杂烩

今天的主题是 Excel,相信大家都比较熟悉吧。而且我相信,大家在日常使用 Excel 的时候,肯定会遇到很多重复繁琐的工作,因为我也同样遇到过。这个时候我通常都会思考下,有没有办法让繁琐的事情变得简单些呢,毕竟我们是 Python 使用者嘛!
所以我个人在工作当中还是积累来一些 Excel 自动化相关都经验都,在后面都文章当中,我会陆续推出 Excel、PDF 等等相关软件都自动化内容,感兴趣都同学记得来看哦!
今天我们的主题就是为 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()

当然的对于画柱状图,饼图等都是类似的,我们也就不再重复了。
下一次,我们就来实现根据已有的数据,如何自动生成我们需要的图表,而且如果我想自动发送给某些人呢,能不能全程自动化搞定呢!


技术

利用Pandas进行分类数据编码的十种方式

资讯

上云避坑指南|上云一时爽,遇坑两行泪

技术

Python实现三维姿态估计遮挡预测

技术

10个有趣的Python高级脚本!


分享

点收藏

点点赞

点在看

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133804
 
251 次点击