批量调整Excel表格的字体、样式 设置单元格的样式、宽高

首页 » Python » 批量调整Excel表格的字体、样式 设置单元格的样式、宽高

修改字体样式

Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色),具体用法参考:

from openpyxl.styles import Font
from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
cell=sheet['A1']
font=Font(name='C:\Windows\Fonts\AdobeFanHeitiStd-Bold',size=12,bold=True,italic=True,color='FF0000')
cell.font=font
workbook.save(filename='./bobo.xlsx')

Windows下的字体文件在C:\Windows\Fonts下,字体的颜色可以为RGB

获取表格中字体的样式

from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
cell=sheet['A1']
font=cell.font
print(font.name,font.size,font.bold,font.italic)
workbook.save(filename='./bobo.xlsx')

设置对齐样式

使用Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)的方式来设置

from openpyxl.styles import Alignment
from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
cell=sheet['A1']
alignment=Alignment(horizontal='center',vertical='center',text_rotation=45)
cell.alignment=alignment
workbook.save(filename='./bobo.xlsx')

水平对齐:distributed、justify、centerleft、fill、centerContinuous、right、general

垂直对齐:bottom、distributed、justify、centertop

常用的对齐方式就几种,其它自己尝试

设置边框样式

使用Side(style=边线样式,color=边线颜色)Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)

from openpyxl.styles import Side,Border
from openpyxl import load_workbook

workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
cell=sheet['A2']
side=Side(style='thin',color='FF0000')
border=Border(left=side,right=side,top=side,bottom=side)
cell.border=border
workbook.save(filename='./bobo.xlsx')

如果需要修改表格的四个边框为不同的边线样式,只需要设置不同的side即可!

边线样式:double、medinmDashDotDot、slantDashDot、dashDotDot、dotted、hair、mediumDashed、dashed、dashDot、thin、mediumDashDot、medium、thick

设置填充颜色

可以使用PatternFill(fill_type=填充样式,fgColor=填充颜色)GradientFill(stop=(渐变颜色1,渐变颜色2,渐变颜色2))两种方式填充,前者为普通的填充,后者为渐变填充。

from openpyxl.styles import PatternFill,GradientFill
from openpyxl import load_workbook

workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
cell_1=sheet['A1']
pattern_fill=PatternFill(fill_type='solid',fgColor='99ccff')
cell_1.fill=parttern_fill

cell_2=sheet['A2']
gradient_fill=GradientFill(stop=('FFFFFF','99ccff','000000'))
cell_2.fill=gradient_fill
workbook.save(filename='./bobo.xlsx')

设定行高和列宽

使用sheet.row_dimensions[行编号].heigth设置行高,使用sheet.column_dimensions[列编号].width设置列宽

from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
sheet.row_dimensions[1].height=40
sheet.column_dimensions['B'].width=20
workbook.save(filename='./bobo.xlsx')

合并单元格和取消单元格

使用sheet.merge_cells(待合并的格子编号)或者sheet.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_colimn=结束列号)两种方式合并单元格

from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
sheet.merge_cells('A1:A2')
sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_colimn=4)
workbook.save(filename='./bobo.xlsx')

使用sheet.unmerge_cells(待取消合并的格子编号)或者sheet.unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_colimn=结束列号)两种方式合并单元格

from openpyxl import load_workbook
workbook=load_workbook(filename='C:\\Users\\Administrator\\Desktop\\book.xlsx')
sheet=workbook.active
sheet.unmerge_cells('A1:A2')
sheet.unmerge_cells(start_row=7,start_column=1,end_row=8,end_colimn=4)
workbook.save(filename='./bobo.xlsx')

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《批量调整Excel表格的字体、样式 设置单元格的样式、宽高》 发布于2020-05-16

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

4 + 6 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册