10分钟掌握openpyxl

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

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类型即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值