# 单元格选择
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()函数,该函数的具体参数如下
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()函数,该函数的具体参数如下。
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()