快捷搜索: 王者荣耀 脱发

python学习笔记—excel操作(3)(个性化操作)

个性化 1.设置字体,行高列宽,合并单元格

import openpyxl

wb=openpyxl.Workbook()
ws1=wb.create_sheet(title="红")
ws2=wb.create_sheet(title="绿")
ws1.sheett_properties.tabColor="FF0000"#将sheet1颜色改为红色
ws2.sheett_properties.tabColor="00FF00"#将sheet2颜色改为绿色

ws1.row_dimensions["2"].height=200#第二行行高设置为200
ws1.colimn_dimensions["B"].width=100#B列列宽设置为100
#要注意的是,行高和列宽的单位不一样,例如这里200的行高长度实际上要小于100的列宽

ws.merge_cells("A2:C6")#合并A2到C6这个矩形内所有的单元格
ws.unmerge_cells("A2:C6")#解合单元格
#需要注意的是,解合的单元格只能是之前合并的,不能部分解合,例如ws.unmerge_cells("A2:C3")将会报错

ws1.frezze_panes="B8"#将B8左边与下边的单元格冻结,滚动进度的时候,冻结的部分始终显现
ws1.frezze_panes="A1"#解冻,即把A1作为基准就可以了。

2.设置单元格字体

openpyxl.styles.Font(参数)

参数主要有: name 字体名称 size 字体尺寸 bold:True/False 是否加粗 italic:True/False 是否倾斜 verAlign:"None"默认/"superscript"上标/“subscript”下标 underline:"None"默认/"single"单下划线/“double”双下划线/singleAccounting’会计用单下划线/"doubleAccounting"会计用双下划线 strike:True/False 是否显示删除线 color:字体颜色

from openpyxl import Workbook
from openpyxl.styles import Font
wb=Workbook
ws=wb.active
b2=ws[B2]
b2.value=i love you
b_r_f=Font(bold=True,color=FF0000)
b2.font=b_r_f#加粗,字体红色
italic_strike_blue_13font=Font(size=13,italic=True,strike=True,color=0000FF)
b3=ws[B3]
b3.value=i love you,too
b3.font=italic_strike_blue_13font#设置定义好的格式
wb.save(路径)

3.填充单元格

from openpyxl.styles import PatternFill
yellow_fill=Pattern(fill_type="solid",fgColor="FFFF00")
b2.fill=yellow_fill
#填充颜色

4.渐进填充

from openpyxl.styles import GradientFill

red_to_green=GradientFill(fill_type="liner",stop=("FF0000","00FF00"))
b3.fill=red_to_green

5.边框设计

openpyxl.styles.Border()
openpyxl.styles.Side()

关于border参数: left 指定左侧边框线类型合颜色 right top bottom同理 diagonal 指定对角线类型和颜色 diagonalUp 是否绘制左下角到右上角的对角线 diagonalDown 是否绘制左上角到右下角的对角线 diagonal_direction 指定对角线方向 outline 轮廓线 vertical 垂直线 horizontal 水平线

关于side参数: border_style 线条种类,一般都是"thin",“thick”,"double"等 color 线条颜色

from openpyxl.styles import Border,Side

thin_side = Side(border_style="thin",color="000000")

doule_side = Side(border_style="double",color="FF0000")

b2.border=Border(diagonal=thin_side,diagonalUp=True,diagonalDown=True)
b3.border=Border(left=double_side,top=single_side)

6.文本对齐

openpyxl.styles.Alignment()

参数: horizonrtal:水平文本 general 常规 centerContinuous 跨列剧中 fill填充 center 剧中 top 顶部对齐 bottom底部对齐 justify两端对齐 distributed 分散对齐 vertical:垂直文本 center 剧中 top 顶部对齐 bottom底部对齐 justify两端对齐 distributed 分散对齐 text_rotation 指定文本旋转角度 wrap_text 是否自动换行 strink_to_fit 是否缩小字体填充 indent 指定缩进

from openpyxl.styles import Alignment

ws.merge_cells(A1:C2)
ws[A1].value="i love you"
center_alignment=Alignment(horizontal=center,vertical=center)
ws[A1].alignment=center_alignment

7.命名样式,设置样式模板 (1)实例化一个NamedStyle类 (2)初始化命名样式 (3)注册命名样式到工作簿 (4)将单元格的style属性赋值为命名样式

from openpyxl.styles import NamedStyle

heightlight=NamedStyle(name="heightlight")
heightlight.font=Font(bold=True,Size=20)
heightight.alignment=Alignment(horizontal="center",vertical="center")
wb.add_named_style(heightlight)#注册命名样式到工作簿
ws["A1"].style=heightlight#将单元格的style属性赋值为命名样式
经验分享 程序员 微信小程序 职场和发展