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

网友投稿 801 2022-10-04

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

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

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

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

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

基本原理

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

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

import xlsxwriter# 创建一个excelworkbook = xlsxwriter.Workbook("chart.xlsx")# 创建一个sheetworksheet = 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'], [10, 40, 50, 20, 10, 50], [30, 60, 70, 50, 40, 30],]# 写入表头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()

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

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

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring MVC数据响应处理详解
下一篇:微信小程序中保存网络图片的方法介绍(代码示例)(微信小程序收集图片信息汇总)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~