一、sheet相关操作
1、使用sheetnames 获取execl中所有sheet页的名称
from openpyxl import load_workbook
# 打开excel文件
wb = load_workbook("files/p1.xlsx")
# sheet相关操作
# 1. 获取excel文件中所有sheet页名称
print(wb.sheetnames) # ['数据导出', '用户列表', 'Sheet1', 'Sheet2']
2、基于sheet页名称,选择sheet页,获取页面中的具体内容
from openpyxl import load_workbook
# 打开excel文件
wb = load_workbook("files/p1.xlsx")
# 基于sheet页名称,获取某一个具体的sheet页
st = wb["数据导出"]
# 输出sheet页中某一行某一列元素的内容
cell = st.cell(2, 3) # 获取第二行第三列的单元格
v1 = cell.value # 取出单元格的值
print(v1)
3、基于索引位置,选择sheet页,获取页面中的具体内容
from openpyxl import load_workbook
# 打开excel文件
wb = load_workbook("files/p1.xlsx")
# 基于索引位置,获取某一个具体的sheet页
st = wb.worksheets[0]
cell_value = st.cell(2, 3).value
print(cell_value)
4、循环所有sheet页
from openpyxl import load_workbook
# 打开excel文件
wb = load_workbook("files/p1.xlsx")
# 循环所有sheet,读取每个sheet页第一行第一列内容
# 方法1
for name in wb.sheetnames:
st = wb[name]
cell = st.cell(1, 1)
print(cell.value)
# 方法2
for name in wb.worksheets:
cell = name.cell(1, 1)
print(cell.value)
# 方法3
for name in wb:
cell = name.cell(1, 1)
print(cell.value)
二、读单元格
- 打开文件
- 选择sheet页
- 获取单元格
- 输出单元格内容
from openpyxl import load_workbook
# 打开文件
wb = load_workbook("files/p1.xlsx")
# 选择sheet页
st = wb.worksheets[0]
# 1. 获取第N行第N列的单元格,并输出内容
cell = st.cell(1, 1) # 获取第1行第1列单元格
print(cell.value) # 输出第1行第1列单元格的内容
# 2. 获取第1行所有的单元格
print(st[1]) # 输出的是元组
# 3. 输出第一行所有单元格的内容
for cell in st[1]:
print(cell.value)
# 4. 获取所有行的数据(取某一列数据)
for row in st.rows:
print(row[0].value, row[1].value) # 输出每一行第1列和第2列内容
# 5. 获取所有列的数据(取某一行数据)
for col in st.columns:
print(col[0].value) # 输出每一列第一行内容
三、改写Execl内容
1、原Excel基础文件上写内容
from openpyxl import load_workbook
# 打开文件
wb = load_workbook("files/p1.xlsx")
# 选择sheet页
st = wb.worksheets[0]
# 找到单元格
cell = st.cell(1, 1)
# 修改单元格的内容
cell.value = "新的开始"
# 保存文件
wb.save("files/p1.xlsx") # 修改完内容后直接保存Excel文件
# wb.save("files/p2.xlsx") # 将Excel保存到p2.xlsx中
2、新创建Excel文件写内容
from openpyxl import workbook
# 调用Workbook对象创建Excel
wb = workbook.Workbook() # 默认会创建一个名称为Sheet的sheet页
# 选择sheet页
st = wb.worksheets[0]
# 找到单元格
cell = st.cell(1, 1)
# 将内容写入单元格
cell.value = "开始111"
# 保存文件
wb.save("files/xx.xlsx")