openpyxl
Python库,处理xlsx文件的读、写。
安装
有网络的情况:
pip install openpyxl
没网络的情况:
找给u盘,使用whl包安装:
pip install openpyxl-3.1.2-py2.py3-none-any.whl
注意,可能会有些依赖的包,如果有就需要单独下载了,安装时会有提醒。
xlsx对象的基础概念
- workbook
- worksheet
- row
- cell
- column
- cell
- row
- worksheet
workbook
是最上层的对象,用openpyxl打开一个xlsx文件后就会的到一个workbook对象。
worksheet
一个workbook可以由一个或多个worksheet组成,就是打开xlsx后看到了一个个sheet
row
行,一个worksheet由多行和多列组成
column
列,一个worksheet由多行和多列组成
cell
cell是单元格,行和列都是由单元格组成。cell是最基本的单元。
常用场景
1、加载xlsx文件
from openpyxl import load_workbook
wb = load_workbook(filename = 'empty_book.xlsx')
wb是加载“empty_book.xlsx”后得到的workbook对象。
2、创建xlsx文件
from openpyxl import Workbook
wb = Workbook()
wb.save("new.xlsx")
在当前目录下创建一个空的xlsx文件,名叫new.xlsx。
3、创建worksheet
ws1 = wb.create_sheet("Mysheet1")
ws2 = wb.create_sheet("Mysheet2", 0)
ws3 = wb.create_sheet("Mysheet3", -1)
上面创建了三个sheet,名字分别是"Mysheet1"、“Mysheet2"和"Mysheet3”。
第二个参数指定了添加的位置。
修改sheet的名字(title):
ws.title = "New Title"
先选择到要修改的sheet,然后修改它的title属性。
4、复制worksheet
source = wb.active
target = wb.copy_worksheet(source)
source是原sheet,target是从source拷贝得到的新sheet。
5、删除worksheet
ws = wb['sheet_name']
wb.remove(ws)
wb是workbook对象,通过wb得到要删除的sheet对象ws,然后通过workbook对象的remove方法将其删除。
6、选择worksheet
选择当前活动sheet
ws = wb.active
打开一个xlsx文件后,一定会有活动的sheet,及当前被选择的sheet。如果我们打开的文件中只包含一个sheet,那么这个sheet就是活动sheet;如果我们打开的文件中包含多个sheet,一般是上次结束前选中的sheet为活动sheet,如果一次打开,那么第一个sheet就是活动sheet。
通过workbook对象的active属性等到当前活动sheet。
选择任意sheet
ws = wb['sheet_name']
通过sheet的名称(title)来选择sheet。
获得sheet列表
sheet_list = wb.sheetnames
sheet_list 是一个list结构,包含了workbook下所有的sheet的名称(title)。
7、单元格取值、赋值
取值
c = ws['A4']
或
cell_range = ws['A1':'C2']
c是单元格,cell_range是一堆单元格。
然后可以通过单元格的value属性来得到单元格的内容:
print(c.value)
上面的方式最直接,但是对编程不太友好,下面这个可以通过类似坐标的方式来获取:
d = ws.cell(row=4, column=2)
d就是第四行第二列这个单元格,注意,如果此单元格不存在,则会创建。
赋值
ws['A4'] = 4
或者
d = ws.cell(row=4, column=2, value=10)
8、插入行
ws.insert_rows(7)
在当前sheet的第七行前插入一行单元格。
9、插入列
ws.insert_cols(7)
在当前sheet的第七列前插入一列单元格。
10、删除行
ws.delete_rows(6, 3)
从第六行开始删除3行单元格。
11、删除列
ws.delete_cols(6, 3)
从第六列开始删除3列单元格。
高级用法
openpyxl库的功能很强大,还可以实现字体、格式、图表、公式、风格等操作。即使是对单元格的操作,也提供了更强大的方式。
参见官方文档:
https://openpyxl.readthedocs.io/en/stable/tutorial.html
openpyxl的所有api详细参数:
https://openpyxl.readthedocs.io/en/stable/api/openpyxl.html
xls文件怎么办?
使用wps或office将其打开后,另存为xlsx类型即可。