Openpyxl学习笔记

文章目录

  • 打开读取表格数据
  • 向excel写入内容
  • 对sheet的操作
  • cell单元格操作
    • 合并单元格 merge_cells
    • 取消合并单元格 unmerge_cells
  • 样式
    • 单元格对齐
    • 单元格字体font
    • 单元格边框样式 Side
    • 单元格填充样式 PatternFill

打开读取表格数据

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()

向excel写入内容

# 导入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)

对sheet的操作

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

cell单元格操作

合并单元格 merge_cells

若合并的多个单元格中均有内容,只保留第一个单元格中的内容

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)

取消合并单元格 unmerge_cells

取消合并单元格,不能恢复合并单元格所丢失的数据

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

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

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

PatternFill(
    fill_type=填充样式,
    fgColor=填充颜色)

cell = sheet["B9"]
fill = PatternFill(fill_type="solid",fgColor="99ccff")
cell.fill = fill

你可能感兴趣的:(学习笔记,学习,笔记)