python操作Excel实现自动化报表
Excel作为日常办公最广泛使用的工具之一,学好它可以帮助我们节约时间,提升工作效率,学会灵活高效的使用excel有着十分重要的意义。
本人觉得会使用大部分excel内置公式和以及VBA的就是高手了。
不过比这更高级的是用程序操作excel,针对相似性很高或者重复性、繁琐的excel任务用一个程序可以实现一劳永逸,夸张的说:可以节省你的生命 哈哈。
以下是python操作excel的介绍:
一、工具包
1.xlrd:从Excel电子表格中提取数据 doc地址:https://xlrd.readthedocs.io/en/latest/
2.xlwt:将数据写入Excel电子表格 doc地址:https://xlwt.readthedocs.org/en/latest/
3.xlutils:提供一组处理Excel文件的实用程序 doc地址:https://xlutils.readthedocs.io/en/latest/
二、安装
python -m pip install xlrd xlwt xlutils
三、基本用法
python操作excel的相关工具包可以具体到操作指定单元格的填充样式、数值类型、数值大小等等。然而python操作excel需要一定pandas数据处理功底,后续将补上章节:pandas数据处理技能
1.从指定文件路径读取excel表格,进行一定操作,然后保存到另一个excel文件:result.xlsx
import xlwt
import xlrd
from xlutils.copy import copy
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容
# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列
乍看好像只用到了pandas,还没有用到上面介绍的三个工具包,下面介绍利用python操作excel底层
2.单元格操作
# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):data = xlrd.open_workbook(file_path)table = data.sheet_by_name(table)return table.cell(y,x).value# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):write_obj_list.append({'cols':cols,'rows':rows,'value':value,\
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):old_excel = xlrd.open_workbook(file_path, formatting_info=True)#管道作用new_excel = copy(old_excel)'''通过get_sheet()获取的sheet有write()方法'''sheet1 = new_excel.get_sheet(0)'''1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表'''for item in write_obj_list:if 'id' not in item.keys():if 'style' in item.keys():sheet1.write(item['rows'], item['cols'], item['value'],item['style'])else:sheet1.write(item['rows'], item['cols'], item['value'])else:if 'style' in item.keys():sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])else:sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])'''如果报错 dict_items has no attributes sort把syle源码中--alist.sort() 修改为----> sorted(alist) 一共修改2次'''new_excel.save(file_path)#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数
# value:合并单元格后的填充值
# style:合并后填充风格:
# font: name 宋体
# height 280;
# alignment: horiz centre
# ... 与excel操作基本保持一致注意:该方法仅仅是将需要直行的动作保存到一个list中,真正的动作还未执行,执行动作是发生在excel_update方法中
最终调用excel_update方法,传入每个单元格需要进行的操作和填充值的write_obj_list以及文件保存路径file_path
就可以在当前工作目录下生成想要的Excel结果文件。
注意:
1.write_obj_list支持用户自定义
2.write_obj_list也可以是根据excel_read方法读取现有待修改的excel文件(可以维持原有表格的格式)而生成
python操作excel还有很多其他的基本方法,因篇幅的限制不再陈述和演示,想要深入研究的可以点击上面的doc地址。
学会python操作excel的单元格、并掌握上面的方法就可以基本实现excel的自动化报表操作了。
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
python操作Excel实现自动化报表相关推荐
- 利用Python操作Excel实现自动化办公
1.安装 2.操作一个简单的Excel文档 操作注释及代码: 操作完成后,数据存储结果如下: 3. 操作简单Excel文档并添加数据格式 操作代码如下:附带数据格式的定义 操作效果如图所示: 4.Ex ...
- python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
相关文章: python处理Excel实现自动化办公教学(含实战)[一] python处理Excel实现自动化办公教学(含实战)[二] python处理Excel实现自动化办公教学(数据筛选.公式操作 ...
- python自动化办公excel-自动化办公:python 操作Excel
原标题:自动化办公:python 操作Excel 1.安装 pip install xlsxwriter or easy_install xlsxwriter or tar -zxvf xlsxwri ...
- Python骚操作:Python控制Excel实现自动化办公!
Python骚操作:Python控制Excel实现自动化办公! 1.安装 Python骚操作:Python控制Excel实现自动化办公! 2.操作一个简单的Excel文档 操作注释及代码: Pytho ...
- 如何用Python操作Excel自动化办公?一个案例教会你openpyxl——读取数据
欢迎大家关注我,我是拾陆,关注同名"二八Data" 数据分析工作最难搞的是处理数据的过程,不然不会有专门的ETL(数据抽取.转换.加载)工程师了.如果是企业级数据处理可能数据库直接 ...
- 软件测试|Python操作Excel制作报表,不要太方便
前言 今天我们介绍的是Python操作Excel制作报表,我们需要用到的库是openpyxl,我们主要使用的功能有下列几个功能 插入与查询数据 分类数据统计 数据可视化 字体颜色修改 基本操作 表格初 ...
- python excel 自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
- python自动化办公excel-Python自动化办公系列之Python操作Excel
[作者导语]本文是鉴于有些粉丝的工作需求,有时候需要遇到这些文件的处理.因此,我写了一个文章集合,供大家参考.全篇包括三个章节,分别为:Python使用openpyxl操作excel.python使用 ...
- python做excel自动化-python操作excel让工作自动化
某局某领导给了3只excel文件,一只里面有4个sheet需要处理,一个sheet有250+列,算下来总共有3000+列需要手动反复插入.删除列.拷贝.求和,所以给了4天的时间要完成. 我不愿意做大量 ...
最新文章
- 参加web前端开发培训具体要学什么内容
- 黑白世界,感受不同的旅行...
- win7如何更改文件类型_教你win7局域网设置方法
- ReviewForJob——最小生成树(prim + kruskal)源码实现和分析
- 小学毕业java_Java运算符
- Warning: bind(): React component methods may only be bound to the component instance. See ...
- SqlHelper编写
- 从零开始编写深度学习库(五)PoolingLayer 网络层CPU编写
- sass玩转颜色总结笔记
- C++ 调节PCM音量
- python破解excel进入密码(指定密码字符)
- 激荡三十年(珍藏图文版)
- SpringSecurity多种认证方式记录之自定义
- 天耀18期 -09.数组【作业】.
- 远程桌面用户输入法的配置
- 大型智慧灌区信息化管理系统云平台 智慧灌区信息化管理系统解决方案
- 为什么说:即便疫情过后,远程办公依旧实行不起来
- 怎么把ide改成ahci_怎样把已安装好的IDE硬盘模式改成AHCI模式 格式已整理 可直接下载打印...
- ZOJ 3328	Wu Xing(游戏)
- 码流、码率、比特率、帧速率、分辨率、 高清的区别