day7openpyxl操作excel
01excel文件读操作
1.excel相关的基本概念
1)工作簿(workbook):一个excel文件就是一个工作簿
2)工作表(sheet):工作簿是工作簿的基本单位,每个工作簿至少要一个工作表
3)单元格(cell):工作表中每一个用来保存数据的格子就是单元格
4)行号(row):每一行前面的数字(从1开始)
5)列号(column):每一列上面的大写字母(也可以用数字1开头,表示列号)
import openpyxl
wb = openpyxl.load_workbook('files/example.xlsx')
2.获取工作簿所有的工作表的名字
names = wb.sheetnames
print(names) # ['表1','Sheet1', '表2']
3.获取工作表
1)工作簿.active - 当前工作簿中的活跃表
sheet1 = wb.active
print(sheet1)
2)工作簿[表名] - 获取工作簿中指定表名对应的工作表
sheet2 = wb['表1']
print(sheet2)
4.获取最大行数和最大列数
1)工作表.max_row
2)工作表.max_column
m_r = sheet1.max_row
m_c = sheet1.max_column
print(m_r,m_c)
print(wb['Sheet1'].max_row,wb['Sheet1'].max_column)
5.获取单元格
工作表.cell(行号,列号)
cell1 = sheet2.cell(2,2)
cell2 = sheet2.cell(2,3)
cell3 = sheet2.cell(3,2)
print(cell1,cell2,cell3)
6.获取单元格中的内容
单元格.value
print(cell1.value)
print(cell2.value)
print(cell3.value)
02excel文件写操作
import openpyxl
import os
注意:excel文件相关任何写操作,只会在保存以后有效
1.新建Excel文件(新建工作簿)
- os.path.exists(文件或者文件夹路径) - 判断指定的文件或者文件夹是否存在
wb1 = openpyxl.Workbook()
- 保存文件
wb1.save('files/example2.xlsx')
案例:如果exampl3.xlsx文件不存在就创建,存在就打开
if os.path.exists('files/example3.xlsx'):
wb2 = openpyxl.load_workbook('files/example3.xlsx')
else:
wb2 = openpyxl.Workbook()
wb2.save('files/example3.xlsx')
案例:如果teacher表不存在就创建,存在就获取teacher表
if 'teacher' in wb2.sheetnames:
sheet3 = wb2['teacher']
else:
sheet3 = wb2.create_sheet('teacher',0)
3.删除表
工作簿.remove(工作表)
if 'Sheet1' in wb2.sheetnames:
wb2.remove(wb2['Sheet1'])
4.修改单元格内容
单元格.value = 数据
sheet3.cell(2,1).value = '小明'
sheet3.cell(1,3).value = 'Tel'
sheet3.cell(1,2).value = None
wb2.save('files/example3.xlsx')
03excel文件样式的修改
import openpyxl
wb = openpyxl.open('files/example3.xlsx')
sheet1 = wb['teacher']
1.设置行高和列宽
1)工作表.row_dimensions[行号].height = 高度
2)工作表.column_dimensions[列号].width = 宽度
sheet1.row_dimensions[1].height = 30
sheet1.column_dimensions['A'].width = 60
2.设置单元格字体样式
1)创建字体对象
from openpyxl.styles import Font
f1 = Font(
name='黑体',
size=15,
color='CC00FF',
strike=True,
bold=True,
italic=True,
underline='single'
)
2)设置单元格字体
sheet1.cell(1,1).font = f1
3.设置填充样式
from openpyxl.styles import PatternFill
fill1 = PatternFill(
fill_type='darkDown',
start_color='FFFF00',
end_color='FF0000'
)
sheet1.cell(1,2).fill = fill1
4.设置边框样式
from openpyxl.styles import Side,Border
1)创建边
s1 = Side(
border_style='medium',
color='ff0000'
)
s2 = Side(
border_style='mediumDashDot',
color='ffff00'
)
2)创建边框
b1 = Border(
top=s1,
bottom=s1,
left=s1,
right=s1
)
b2 = Border(
top=s1,
bottom=s2,
left=s2,
right=s1
)
3)设置单元格的边框
sheet1.cell(4,2).border = b1
wb.save('files/example3.xlsx')
t=s1,
right=s1
)
b2 = Border(
top=s1,
bottom=s2,
left=s2,
right=s1
)
3)设置单元格的边框
```python
sheet1.cell(4,2).border = b1
wb.save('files/example3.xlsx')