日常的工作和学习过程中充斥着大量excel操作,比如打开excel文件、计算数据、保存数据、绘图等等。python有诸多可以操作excel数据的模块如pandas,但想要一览完整的pandas是个相对庞大的工程,从操作excel出发python有更轻量的工具。本文将带大家认识一下python操作excel的模块——openpyxl,一个更容易上手的实用型模块。
windows安装:
openpyxl是第三方扩展库,通过 pip install openpyxl安装。
日常excel的操作主要包括创建、读、写、画图。
接下来我们逐一进行介绍。
创建excel文件、sheet表
- openpyxl.Workbook()方法:创建excel对象
- object.create_sheet()方法:创建sheet
- object.save()方法:保存excel对象为本地文件
import openpyxl as ox
workbook = ox.Workbook() # 内存中创建一个新的excel对象
worksheet_1 = workbook.create_sheet(title='sheetname', index=0) # 在指定位置插入新的sheet
workbook.save('./excel_project/newfile.xlsx') # newfile 命名文件,保存到同级的excel_project 文件夹中
读excel操作
openpyxl.load_workbook()方法
workbook = ox.load_workbook('./excel_project/newfile.xlsx') # ###读excel文件
worksheet = workbook['sheetname'] # 读某个sheet
msg = worksheet['A1'].value # 读单元格的内容
print(worksheet)
print(msg)
# 运行结果:
<class 'openpyxl.worksheet.worksheet.Worksheet'>
Values
写excel操作
worksheet['A5'] = 'Values' # 方式1:写入单元格,此时只在内存读写
worksheet.cell(row=5, column=5, value='Values') # 方式2:写入单元格
workbook.save('./excel_project/newfile.xlsx') # 保存本地
甚至可以直接向单元格写入公式,如:
worksheet['A5'] = '=B5/C5'
但必要性不强。
既然使用python操作,就要构建关于数据处理的函数,将excel数据读取后带入函数计算,再将结果写入excel,这样明显高效很多且代码灵活性高,数据模型也能根据实际需要随时修订。
其他
访问excel对象的一些属性:
- object.sheetnames:查看对象内所有sheet名称,返回列表格式
- sheet的append操作
- 单元格的切片操作(可获取范围内的单元格)
namelist = workbook.sheetnames
worksheet.append(['values1', 'values2', 0, 1])
ranges = worksheet['A1':'C5']
这里不过多介绍了,感兴趣的同学可自行尝试。
画图
openpyxl并未提供操作画图的功能。
想要实现还需结合python的其他作图模块。这里介绍一个比较便捷的替代方法,就是事先在excel里绘好透视表区域,再将计算结果写入,借用excel的自身功能生成区域内的透视图。
openpyxl模块讲到这里就基本结束了。
可以看到操作很简单,但实战还要做到融汇贯通,将python的语法和模块有效结合起来,才能发挥出openpyxl实际的应用价值。
作者:fakeProgramer
链接:https://www.jianshu.com/p/f362821b617f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。