最近阅读他人撰写的python操作excel书籍,感觉对于程序员来讲章节进展有点 缓慢,对于普通 办公人员又没必要讲解源代码。
为此我特地归纳总结提取出适合快速上手的内容,追求的就是简单易上手。
平时一般都用openpyxl来进行excel的操作,感觉上openpyxl更适合处理数据,xlwings更适合处理显示效果,xlwings主要用于windows系统。
名词解释
为统一形式,方便大家理解,先将几个名词的变量形式进行统一,后面写的变量应会按照这些开头来做区分。
app 代表excel软件
wb workbook工作簿,一个excel文件
ws worksheet工作表,文件中的一张表格
range 单元格范围
cell 单元格
formula 公式
基本操作流程
功能需要系统中安装有Excel程序,openpyxl不需要。Wps能替代excel,需要给app设置impl参数
基本流程是:导入库 –》取得Excel程序-》取得工作簿-》取得工作表-》执行一些操作-》关闭工作簿-》关闭程序
import xlwings
app = xlwings.App(visible=True, add_book=False)
app.display_alerts = False
wb = app.books.add()
# wb = app.books.open('123.xlsx')
# ws = wb.sheets['Sheet1']
ws = wb.sheets.active
wb.save( '123.xlsx' )
wb.close()
app.quit()
其中,app代表excel程序,visible参数表示是否前台显示操作过程,add_book参数表示是否增加一个工作簿。后接着的display_alert是个设置,可以设不显示警告,减少卡顿,这个和Excel是否已经激活关系不大。
wb行增加一个工作簿,相当于excel新建文件,也可以通过注释中的open函数打开一个已有的工作簿。
wb行取得一个活动的工作表,也可以通过表名如Sheet1获得一个工作表,更可以通过索引数字获得,建议使用的是表名获得;每次进行创建表操作时,会自动将这个设为active表 ,但取得 工作表不会,active类似与于一个指针,获取的是当前的前台工作表。
如:
观察打印消息,前两次都是创建表 ,所以指针指向了 新表,第三次 取得表 ,所以指针不会变化。
紧接着的是保存,参数即为文件名称,可以覆盖前面的表格。save还有第二个参数是增加密码。设置后excel打开需要密码。两个参数的命名参数为path和password。有密码的打开会提示输入密码 。
接着就是关闭工作簿和程序,因为表不是一个独立的进程,不需要额外关闭工作表。
像这种资源的获取与释放,完全可以用我前几天向大家介绍的上下文管理器juejin.cn/post/722039…,将其改写为两个层级进行自动的进入和释放,为什么是 两个层级,因为可以考虑同时操作多个excel工作簿,所以可以在一个app下操作 ,这个软件的释放影响还算不大,多开几个窗口对于电脑性能影响还算能接受。