1.打开工作簿
workbook=load_workbook(文件名) workbook.sheetnames获取所有工作表
2.获取工作表
workbook[sheet名称] workbook.active
3.获取表格尺寸
sheet.dimensions
4.获取表格内某个格子的数据
cell=sheet['A1'] cell.value
5.获取一系列格式
sheet['A1':'C5']
6.获取某列
cols=sheet['D']
from openpyxl import load_workbook
# 打开工作簿
workbook = load_workbook(文件名)
# 激活工作表
worksheet = workbook["表名"]
# 循环遍历
for row in worksheet: # 循环获取表数据
for cell in row: # 循环获取每个单元格数据
print(cell.value, end=",")
print()
# 导入openpyxl模块的Workbook类
from openpyxl import Workbook
# 创建一个workbook对象,同时也会创建一个工作表
wb = Workbook()
# 调用得到正在运行的工作表。注意:调用工作表的索引默认是0,即默认对第一张工作表进行操作。
ws = wb.active
#保存
wb.save("实例.xlsx")
1.新建一个工作簿
workbook=Workbook(....)
2.保存
workbook.save(...)
3.向某个格子写入内容
sheet['A1']='hello' cell.value='python'
4.使用python列表数据插入一行
sheet.append(python列表)
5.插入公式
直接复制公式字符串(from openpyxl.utils import formulae)
sheet['A1']='=sum(B5:B8)'
6.插入一列
sheet.insert_cols(inx=数字编号)
7.插入多列
sheet.insert_cols(inx=数字编号,amount=要插入几列)
8.插入多行
sheet.insert_rows(inx=数字编号,amount=要插入几列)
9.删除多行、多列
sheet.delete_rows(inx=1(包含),amount=3)
10.移动格子(左上角原点)向下3,向右2
sheet.move_range('A3:B5',rows=3,cols=2)
1.创建sheet
workbook.create_sheet(名称)
2.删除一个sheet
workbook.remove(sheet实例)
3.复制一个sheet
workbook.copy_worksheet(sheet实例)
4.修改表格名称
sheet.title
5.冻结窗格
sheet.freeze_panes='A2'
6.添加筛选
sheet.auto_filter.ref=sheet.dimensions
若合并的多个单元格中均有内容,只保留第一个单元格中的内容
sheet.merge_cells(待合并的格子编号)
sheet.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
from openpyxl import load_workbook
workbook = load_workbook(filename)
sheet = workbook.active
sheet.merge_cells("C1:D2")
sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3)
workbook.save(filename)
取消合并单元格,不能恢复合并单元格所丢失的数据
sheet.unmerge_cells(待合并的格子编号)
sheet.unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
from openpyxl import load_workbook
workbook = load_workbook(filename)
sheet = workbook.active
sheet.unmerge_cells("C1:D2")
sheet.unmerge_cells(start_row=7,start_column=1,end_row=8,end_column=3)
workbook.save(filename="./testCase.xlsx")
1.修改字体样式(from openpyxl.styles import Font)
Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
2.获取表格中字体的样式
cell.font.属性
3.设置对齐样式(from openpyxl.styles import Alignment)
alig=alignment(horizontal='center',vertical=垂直对齐方式,text_rotation=旋转角度,wrap_text=是否自动换行)
cell.alignment=alig
4.设置边框样式
side=Side(style=边线样式,color=边线颜色)
Border(left=side,top=side,right=side,bottom=side)
cell.border=border
5.设置填充样式(from openpyxl.styles import PatternFill)
pattern_fill=PatternFill(fill_type=填充样式,fgcolor=填充颜色)
cell.fill=pattern_fill
6.设置行高和列宽
sheet.row_dimensions[2].height=50
sheet.column_dimensions['B'].width=50
7.合并单元格
sheet.merge_cells("D1:G2")
sheet.merge_cells(start_row=1,start_column=8,end_row=2,end_column=18)
8.取消单元格
unmerge
Alignment(
horizontal=水平对齐模式,
vertical=垂直对齐模式,
text_rotation=旋转角度,
wrap_text=是否自动换行)
horizontal代表水平方向
左对齐left,
居中center,
右对齐right,
分散对齐distributed,
跨列居中centerContinuous,
两端对齐justify,填充fill,
常规general
vertical代表垂直方向
居中center,
还可以靠上top,
靠下bottom,
两端对齐justify,
分散对齐distributed
cell = sheet["A3"]
alignment = Alignment(horizontal="center",vertical="center",text_rotation=45,wrap_text=True)
cell.alignment = alignment
Font(
name=字体名称,
size=字体大小,
bold=是否加粗,
italic=是否斜体,
color=字体颜色)
cell = sheet["A1"]
font = Font(name="微软雅黑", size=20, bold=True, italic=True, color="000000")
cell.font = font
# 获得字体样式 font
print(font.name) # 字体名称
print(font.size) # 字体大小
print(font.bold) # 是否加粗 返回的是布尔值
print(font.italic) # 是否斜体 返回的是布尔值
print(font.color) # 字体颜色 返回颜色类型和相关参数
Side(style=边线样式,color=边线颜色)
style 参数的种类:
'double',
'mediumDashDotDot',
'slantDashDot',
'dashDotDot',
'dotted',
'hair',
'mediumDashed',
'dashed',
'dashDot',
'thin',
'mediumDashDot',
'medium',
'thick'
Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)
cell = sheet["D6"]
side1 = Side(style="thin",color="FF0000")
side2 = Side(style="thick",color="FFFF0000")
border = Border(left=side1,right=side1,top=side2,bottom=side2)
cell.border = border
PatternFill(
fill_type=填充样式,
fgColor=填充颜色)
cell = sheet["B9"]
fill = PatternFill(fill_type="solid",fgColor="99ccff")
cell.fill = fill