openpyxl简介
openpyxl 是一个第三方库,可以处理xlsx格式的Excel文件,也就是 Excel 2003 以上版本的 Excel 文件。
(2003 版本的可以使用 xlrd 和 xlwt 这两个库来读取,但是我个人建议 xls 文件还是用 pandas 来处理比较好。)
第一步是安装 openpyxl 这个库
在 cmd 输入 pip install openpyxl -i https://pypi.doubanio.com/simple
(这里笔者使用的是豆瓣源,下载速度相比不换国内源的会快很多, 如果已经配置国内源的, 直接输入 -i 前面部分就行)
-创建文件
from openpyxl import Workbook
# 方法一 这种方法默认表名为 Sheet
wb = Workbook()
ws = wb.active # 新建一个Sheet
# 方法二 这种方法可以自定义表名和插入的位置,如果输入位置,默认为0
ws = wb.create_sheet('Shee1', 0)
- 打开文件
from openpyxl import load_workbook
wb = load_workbook('xxx.xlsx')
- 获取表名
# 获取所有 Sheet 的名称, 得到的是一个所有 Sheet 名称的列表
sheet_names = wb.sheetnames
- 选择表
# 方法一 直接读取 Excel 里面被选中的那个 Sheet
ws = wb.active
# 方法二 自己输入 Sheet 的名称
ws = wb['Sheet']
- 存储数据
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 第一种 row为行,column为列
ws.cell(row=1, column=2).value = 1
# 可直接简化为
ws.cell(1, 2).value = 1
# 第二种方法
ws['B1'].value = 1
# 一次添加一行数据
ws.append([1, 2, 3, '4'])
# 注意,这里添加多少数都要用中括号括起来
# 最后记得保存数据
wb.save('文件名.xlsx')
- 读取数据
from openpyxl import load_workbook
# 这里的 test.xlsx 文件你们在 py 文件的同个目录下新建一个填一下数据就行了
wb = load_workbook('test.xlsx')
ws = wb.active
# 读取一个单元格 方法一
print(ws['A1'].value)
# 读取一个单元格 方法二
print(ws.cell(1, 1).value)
# 读取单元格的值和存储单元格的值是差不多,一个是读取值出来,一个是赋值进去
- 获取 Sheet 表的最大行列数
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb.active
# 获取最大行数
max_r = ws.max_row
# 获取最大列数
max_c = ws.max_column
- 列字母和坐标数字相互转换
from openpyxl.utils import get_column_letter, column_index_from_string
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 根据列的数字返回字母
print(get_column_letter(3)) # C
# 根据字母返回列的数字
print(column_index_from_string('D')) # 4
- 遍历单元格
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
ws = wb.active
# 注意
# openpyxl 读取 Excel 的索引是从 1 开始的
# 因为 range 函数是左闭右开,再加上索引是从 1 开始的,所以最大值都要 +1
for i in range(1, ws.max_row+1):
for j in range(1, ws.max_column+1):
print(ws.cell(i, j).value)
下一篇将写 openpyxl 一些高级一点的操作,例如给单元格弄格式,颜色等等
喜欢的文章可以关注我,觉得文章对你有用的话点个赞和收藏喔