学习笔记1:Python openpyxl

openpyxl笔记

openpyxl由Charlie ClarkEric Gazoni联合开发,

专门用来处理Excel电子表格的Python第三方库

openpyxl库可以处理Excel2010以后的电子表格格式,包括:xlsx/xlsm/xltx/xltm

import openpyxl

# 通过文件路径,打开工作簿
wb1 = openpyxl.load_workbook('./demo.xlsx')
# 用 Workbook() 创建新工作簿
wb2 = openpyxl.Workbook()
from openpyxl import load_workbook, Workbook

# 通过文件路径,打开已有工作簿
wb1 = load_workbook('./demo_excel.xlsx')
# 用 Workbook() 创建新工作簿
wb2 = Workbook()

保存工作簿:

from openpyxl import Workbook

# 新建工作簿
new_wb = Workbook()
# 将新建的工作簿保存为
new_wb.save('./new.xlsx')

工作簿对象有一个常用的属性active,语法为工作簿对象.active,这个属性可以获取到工作簿中活动的工作表对象

from openpyxl import load_workbook

# 打开mou工作簿
staff_wb = load_workbook('./material/mou.xlsx')
# 获取活动工作表
active_ws = staff_wb.active

按表名取表:

from openpyxl import load_workbook

# 打开【mou.xlsx】工作簿
staff_wb = load_workbook('./material/mou.xlsx')
# 按表名取表
a_ws = staff_wb['sheet1_name']  
b_ws = staff_wb['sheet2_name']  

获取单行或列:

在openpyxl中,我们可以通过工作表对象[行数]工作表对象['列名']的方式获取到一个tuple,这个tuple中包含了指定行或列中的所有数据。获取cell对象

# 打印获取到的第五行数据
print(active_ws[5])
# 打印获取到的第二列数据
print(active_ws['B'])

获取多行数据:

用方法iter_rows(),返回n个tuple,每个tuple代表表格中的一行

active_ws.iter_rows(min_row,max_row,min_col,max_col,values_only=False)
#values_only是否返回单元格值,True:返回单元格值,False返回单元格对象
#只读时设置True,写入时设置False
for row in a_ws.iter_rows(min_row=2, max_row=12, min_col=2, max_col=3, values_only=True):
    print(row)
#1就是第一,没有0

追加数据:

使用append()追加一行数据,list或tuple

注意追加完之后要save()

active_ws.append(info_list)
active_ws.append(info_tuple)

# 保存工作簿为new.xlsx
staff_wb.save('./new.xlsx')

获取单元格对象:

方法1:通过iter_rows()来获取指定范围的行,再通过索引从行中取出单元格对象,values_only设为False

for row in a_ws.iter_rows(min_row=2, max_row=12, min_col=2, max_col=3):
    print(row)

方法2:for cell in 工作表对象[行数];for cell in 工作表对象['列名']

for row_cell in staff_ws[3]:
    print(row_cell)

# for循环遍历,取出第三列(C列)的所有单元格对象
for col_cell in staff_ws['C']:
    print(col_cell)

方法3:通过单元格坐标

staff_ws = staff_wb.active

# 打印单元格对象A1
print(staff_ws['A1'])

单元格对象的基本操作:

# 获取单元格的值
单元格对象.value
# 给单元格对象赋值
单元格对象.value = 值

# 打印单元格对象C2的值
print(staff_ws['C2'].value)

# 修改单元格对象C2的值为10000
staff_ws['C2'].value = 10000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值