python 使用 openpyxl 批量调整字体和样式

  • 修改字体样式 Font(name,size,bold,italic,color)
  • 获取表格中格子的字体样式
  • 设置对齐样式 Alignment(horizontal,vertical,text_rotation,wrap_text)
  • 设置边框样式 Side(style,color)
  • 设置填充样式 PatternFill()、GradientFill()
  • 设置行高和列宽
  • 合并单元格与取消合并单元格
    • 合并单元格 merge_cells()
    • 取消合并单元格 unmerge_cells()

修改字体样式 Font(name,size,bold,italic,color)

from openpyxl.styles import Font
from openpyxl import load_workbook'''
Font(name=字体名称,size=字体大小,bold=是否加粗,italic=是否斜体,color=字体颜色)
'''workbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.active
cell = sheet["A1"]
font = Font(name="微软雅黑",size=20,bold=True,italic=True,color="FF0000")
# 这个 color 是 RGB 的 16 进制表示
cell.font = font
workbook.save(filename="../excelDemo/testCase.xlsx")

效果展示

获取表格中格子的字体样式

  • font.name 字体名称
  • font.size 字体大小
  • font.bold 是否加粗 返回的是布尔值
  • font.italic 是否斜体 返回的是布尔值
  • font.color 字体颜色 返回颜色类型和相关参数
from openpyxl.styles import Font
from openpyxl import load_workbookworkbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.activecell = sheet["A1"]
font = cell.font
print(font.name, font.size, font.bold, font.italic, font.color)'''
输出结果:
微软雅黑 20.0 True True <openpyxl.styles.colors.Color object>
Parameters:
rgb='00FF0000', indexed=None, auto=None, theme=None, tint=0.0, type='rgb'
'''

设置对齐样式 Alignment(horizontal,vertical,text_rotation,wrap_text)

Alignment(horizontal=水平对齐模式,vertical=垂直对齐模式,text_rotation=旋转角度,wrap_text=是否自动换行)

  • 水平对齐:
    horizontal代表水平方向,可以左对齐left,还有居中center和右对齐right,分散对齐distributed,跨列居中centerContinuous,两端对齐justify,填充fill,常规general
  • 垂直对齐:
    vertical代表垂直方向,可以居中center,还可以靠上top,靠下bottom,两端对齐justify,分散对齐distributed
workbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.activecell = sheet["A3"]
alignment = Alignment(horizontal="center",vertical="center",text_rotation=45,wrap_text=True)cell.alignment = alignment
workbook.save(filename="../excelDemo/testCase.xlsx")

设置边框样式 Side(style,color)

 Side(style=边线样式,color=边线颜色)* style 参数的种类: 'double, 'mediumDashDotDot', 'slantDashDot',
'dashDotDot','dotted','hair', 'mediumDashed, 'dashed', 'dashDot', 'thin',
'mediumDashDot','medium', 'thick'Border(left=左边线样式,right=右边线样式,top=上边线样式,bottom=下边线样式)
from openpyxl.styles import Side,Border
from openpyxl import load_workbookworkbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.activecell = 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 = borderworkbook.save(filename="../excelDemo/testCase.xlsx")

展示效果

设置填充样式 PatternFill()、GradientFill()

语法:

  • PatternFill(fill_type=填充样式,fgColor=填充颜色)
  • GradientFill(stop=(渐变颜色 1,渐变颜色 2……))
from openpyxl.styles import PatternFill,GradientFill
from openpyxl import load_workbookworkbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.activecell_b9 = sheet["B9"]
pattern_fill = PatternFill(fill_type="solid",fgColor="99ccff")
cell_b9.fill = pattern_fill
cell_b10 = sheet["B10"]
gradient_fill = GradientFill(stop=("FFFFFF","99ccff","000000"))
cell_b10.fill = gradient_fillworkbook.save(filename="../excelDemo/testCase.xlsx")

展示效果

设置行高和列宽

语法:

.row_dimensions[行编号].height = 行高
.column_dimensions[列编号].width = 列宽
from openpyxl import load_workbookworkbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.active# 设置第 1 行的高度
sheet.row_dimensions[1].height = 50
# 设置 B 列的宽度
sheet.column_dimensions["B"].width = 20workbook.save(filename="../excelDemo/testCase.xlsx")

也可以统一整张表的行高和列宽

from openpyxl import load_workbookworkbook = load_workbook(filename="../excelDemo/testCase.xlsx")
sheet = workbook.active# 将整个表的行高设置为 50,列宽设置为 30;
sheet.row_dimensions.height = 50
sheet.column_dimensions.width = 30 workbook.save(filename="../excelDemo/testCase.xlsx")

合并单元格与取消合并单元格

合并单元格 merge_cells()

语法:

.merge_cells(待合并的格子编号)
.merge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
from openpyxl import load_workbookworkbook = load_workbook(filename="./testCase.xlsx")
sheet = workbook.activesheet.merge_cells("C1:D2")
sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3)workbook.save(filename="./testCase.xlsx")

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

效果如下:

取消合并单元格 unmerge_cells()

语法:

.unmerge_cells(待合并的格子编号)
.unmerge_cells(start_row=起始行号,start_column=起始列号,end_row=结束行号,end_column=结束列号)
from openpyxl import load_workbookworkbook = load_workbook(filename="./testCase.xlsx")
sheet = workbook.activesheet.merge_cells("C1:D2")
sheet.merge_cells(start_row=7,start_column=1,end_row=8,end_column=3)workbook.save(filename="./testCase.xlsx")

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

效果如下:

python 使用 openpyxl 批量调整字体和样式相关推荐

  1. Python+os+openpyxl 批量获取Excel的文件名和最大行数

    1. 提出需求 这已经不知道是粉丝问我的第几个办公自动化的问题了,并且这些问题都是大家在学习和工作中碰到过的真实问题场景.其实从下图中已经可以很明确的看出别人的需求了,我这里就不用在赘述了,下面直接上 ...

  2. 【会声会影】导入的srt字幕文件,如何快速批量调整字体及大小

    版本:Corel VideoStudio Pro 2018 很简单,导入srt字幕时,在「打开文件」对话框中就有字体.大小的调整选项.请看图示: PS: 如果用「粘贴属性」的方法批量调整的话,会很慢, ...

  3. 【Excel自动化办公Part4】:调整字体与样式的操作——字体、边框、对齐格式、颜色填充

    目录 一.修改字体样式 二.获取表格中字体的样式 三.设置对齐格式 五.设置边框样式 六.设置填充样式 第一种(填充单种颜色) 第二种(填充渐变色) 一.修改字体样式 Font(name=字体名称, ...

  4. Python 使用openpyxl读取excel字体颜色与单元格颜色

    环境准备 python3 openpyxl 代码 import openpyxl wb = openpyxl.load_workbook(filedir) sheet = wb.active shee ...

  5. python 获取文件名_真实需求 | Python+os+openpyxl 批量获取Excel的文件名和最大行数...

    1. 提出需求 这已经不知道是粉丝问我的第几个办公自动化的问题了,并且这些问题都是大家在学习和工作中碰到过的真实问题场景.其实从下图中已经可以很明确的看出别人的需求了,我这里就不用在赘述了,下面直接上 ...

  6. 【Python基础】python使用openpyxl操作excel

    1.openpyxl库介绍 openpyxl最好用的python操作excel表格库,不接受反驳: openpyxl官网链接:openpyxl官网 openpyxl只支持[.xlsx / .xlsm ...

  7. python使用openpyxl操作excel

    目录 1 Excel表格 1.1 表格述语 1.2 表格示例 2 python打开及读取表格内容 2.1打开Excel表格并获取表格名称 2.2 通过sheet名称获取表格 2.3 获取表格的尺寸大小 ...

  8. [转载] Python利用openpyxl模块读取excel文件内容

    参考链接: Python | 使用openpyxl模块调整Excel文件的行和列 import openpyxl wb = openpyxl.load_workbook('原始数据.xlsx') #读 ...

  9. python自动化办公(第9课)批量调整Excel中字体、样式

    python自动化办公(第9课)批量调整Excel中字体.样式 - 修改字体样式 Font(name="字体名",size=字体大小,bold=是否加粗,italic=是否斜体,c ...

最新文章

  1. Data - 数据思维 - 上篇
  2. java struts2 session mysql 内存不足_Java - 用户在线的数据库实现方法和内存实现方法...
  3. markdown编辑器基本用法
  4. asp.net三层架构连接Oracle 11g详解
  5. Laravel大型项目系列教程(七)之7 扩展包和Artisan开发
  6. hdoj 1257(暴力)
  7. Javascript对象扩展 - JsPoint类
  8. 自学python后自己接单-分享一下我的Python自学历程,分享下我自己学习方法
  9. 中国HBase技术社区第十届meetup--HBase生态实践 (杭州站)...
  10. 【mybatis】mybatis基础知识总结
  11. mysql 对日期的处理函数_MySQL日期处理函数
  12. 无线服务器软件,无线局域网AAA服务器的软件设计与实现
  13. 如何让微软Onedrive同步其他硬盘的文件
  14. Java实现:挖金矿问题
  15. 程序猿必看的10部黑客电影
  16. 启发式搜索算法 - 以A*为中心来说明启发式算法本质是要找有效的heuristic需要满足的性质
  17. 自动化C语言第一次月考试卷,c语言程序设计第一次月考试题
  18. pta 7-1 走楼梯升级版(递归)
  19. python支持复数以及相关的运算吗_python怎么实现复数运算
  20. 【源码】YOLOv5云端API部署

热门文章

  1. 03 大数据hadoop发展简史及环境安装
  2. laravel进阶学习之laravel生命周期
  3. 【新闻推荐系统】(task2)mysql和pymysql使用
  4. Adobe应用服务器企业版
  5. 医疗行业数据防泄露解决方案
  6. ESP32入门之GPIO:点亮一盏LED灯
  7. 越权访问(Broken ACCESS Control)说明及解决方案
  8. 电视显示990002服务器访问失败,990001互联网访问失败(1)是啥原因
  9. Android雷达图(蜘蛛网图)绘制
  10. Python-Flask开发微电影网站(五)