对比Excel学openpyxl系列之单元格选择与字体设置

选择单元格

# 单元格选择
from openpyxl import Workbook
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet

#选择具体单元格
ws['A2']=1#具体单元格
ws.cell(row=1,column=2).value=2#通过row和colum形式指定

#选择多个单元格
ws[10]=3#第十行的单元格
ws[C]=4#第C列的单元格

ws[5:10]=5
ws['C:E']=6
wa['A1':'C5']=7

字体设置

基本字体的相关设置

设置excel字体,基本字体相关设置主要有字体类型、字号大小、是否加粗、是否斜体、对齐方式、下画线、删除线、字体颜色等。 需要用到Font()函数。

excel实现方式:在这里插入图片描述
python实现方式:
在这里插入图片描述

  • name用来说明要设置的字体类型,可选的参数值为在Excel“字体”组中下拉列表的所有值。

  • size表示字体的大小,可选的值为具体数值。

  • bold表示是否加粗,当参数值为False时表示不加粗,为True时表示加粗。

  • italic表示是否斜体,当参数值为False时表示不对字体进行倾斜,为True时表示对字体进行倾斜。

  • vertAlign表示字体的垂直对齐方式,可选的值及对应的对齐在这里插入图片描述

  • underline表示下画线的类型,可选的值及对应的下画线类型如在这里插入图片描述

  • strike表示是否加删除线,当参数值为False时表示不加删除线,为True时表示加删除线。

  • color表示具体的字体颜色,可选值为ARGB格式的颜色值,一个颜色会有不同格式,网上会有不同格式之间相互转换的工具,

如果要对某个单元格进行设置,则只需要让这个单元格的font属性等于Font()函数,并在Font()函数中指明具体的设置参数。格式如下。

a1.font=Font()

一下就是对单元格字体的处理

from openpyxl import Workbook
from openpyxl.styles import colors
from openpyxl.styles import Font
wb=Workbook()
ws=wb.active
rows=[["字体"],["字体大小"],["是否加粗"],["是否斜体"],["垂直对齐"],["下划线"],["删除线"],["字体颜色"]]
for row in rows:
    ws.append(row)
a1=ws['A1']
a1.font=Font(name='arial')
a2=ws['A2']
a2.font=Font(size=16)
a3=ws['A3']
a3.font=Font(bold=True)
a4=ws['A4']
a4.font=Font(italic=True)
a5=ws['A5']
a5.font=Font(vertAlign='superscript')
a6=ws['A6']
a6.font=Font(underline='doubleAccounting')
a7=ws['A7']
a7.font=Font(strike=True)

a8=ws['A8']
a8.font=Font(color='FFEE0000')

wb.save(r'C:\Users\mac\Desktop\test4.xlsx')#保存工作簿

在这里插入图片描述

单元格填充

单元格填充主要分为两种,一种是背景色的填充,就是单纯的颜色填充,另一种是图案的填充,就是以某种图案对单元格进行填充。
excel操作如下:在这里插入图片描述
在Python中,要对单元格进行填充时,需要用到PatternFill()函数,该函数的具体参数如下
在这里插入图片描述

  • start_color表示前景色填充,也就是具体的图案的颜色。
  • end_color表示背景颜色,因为图案是覆盖在单元格上方的,所以在图案的底层还会有一个颜色,就是背景色。这个颜色值也需要是ARGB格式的。
from openpyxl import Workbook
from openpyxl.styles import colors
from openpyxl.styles import PatternFill
wb=Workbook()#声明新建一个工作簿,默认创建一个sheet
ws=wb.active#激活sheet
ws['A1']='我是纯色填充'#给单元格a1赋值1
a1=ws['A1']
a1.fill=PatternFill(fill_type='solid',start_color='FFFFFF00')
wb.save(r'C:\Users\mac\Desktop\test5.xlsx')

在这里插入图片描述

边框设置

边框线设置就是设置单元格边框,主要包括线型及颜色两个方面。
在Python中要对单元格进行边框线设置,需要用到Border()函数,该函数的具体参数如下。
在这里插入图片描述

  • left、right、top、bottom分别表示对一个单元格左、右、上、下四边的边框线进行设置,diagonal表示对单元格的对角线进行设置。
  • border_style表示线型,可选的参数值及对应的线型
    在这里插入图片描述
  • color表示线的颜色,可选参数值也需要是ARGB格式的。
from openpyxl import Workbook
from openpyxl.styles import colors
from openpyxl.styles import Border,Side
wb=Workbook()
ws=wb.active
ws['B3']='边框'#给单元格a1赋值1
a1=ws['B3']
a1.border=Border(left=Side(border_style='hair',color='FFFFFF00'),
                right=Side(border_style='thick',color='FFFFFF00'),
                top=Side(border_style='dotted',color='FFFFFF00'),
                bottom=Side(border_style='medium',color='FFFFFF00'))
wb.save(r'C:\Users\mac\Desktop\test6.xlsx')

在这里插入图片描述

在这里插入图片描述
除此之外还有设置对角线参数:diagonal
用法如下

from openpyxl import Workbook
from openpyxl.styles import colors
from openpyxl.styles import Border,Side
wb=Workbook()
ws=wb.active
ws['B3']='边框'#给单元格a1赋值1
a1=ws['B3']
a1.border=Border(left=Side(border_style='hair',color='FFFFFF00'),
                right=Side(border_style='thick',color='FFFFFF00'),
                top=Side(border_style='dotted',color='FFFFFF00'),
                bottom=Side(border_style='medium',color='FFFFFF00'),
                diagonal=Side(border_style='thick',color='FFFFFF00'),
                diagonalDown=True)

ws['E3']='斜杠'#给单元格a1赋值1
a2=ws['E3']
a2.border=Border(left=Side(border_style='hair',color='FFFFFF00'),
                right=Side(border_style='thick',color='FFFFFF00'),
                diagonal=Side(border_style='thick',color='FFFFFF00'),
                diagonalUp=True,
                 diagonalDown=True)


wb.save(r'C:\Users\mac\Desktop\test6.xlsx')

在这里插入图片描述

批量设置单元格

#遍历每一列
for col in wa['A':'C']:
    for i in col:
        r.font=Font()
        r.fill=PatternFill()
        r.border=Border()


#遍历每一行
for col in wa[1:7]:
    for i in col:
        r.font=Font()
        r.fill=PatternFill()
        r.border=Border()


#指定区域的每一行
for col in wa["A1":"D5"]:
    for i in col:
        r.font=Font()
        r.fill=PatternFill()
        r.border=Border()

猜你喜欢

转载自blog.csdn.net/weixin_41867184/article/details/125543891
今日推荐