当前位置:首页>python>Python开发从零开始-50.21-Office 文档处理

Python开发从零开始-50.21-Office 文档处理

  • 2026-10-11 07:08:29
Python开发从零开始-50.21-Office 文档处理

接上文,本文小编与大家分享 Python 处理 Office 文档的相关知识。

④ 设置单元格对齐样式

Alignment 对象用于设置单元格对齐样式。其构造函数原型为:

Alignment(

    horizontal=None, vertical=None,

    textRotation=0, wrapText=None,

    shrinkToFit=None, indent=0,

    relativeIndent=0, justifyLastLine=None,

    readingOrder=0, text_rotation=None,

    wrap_text=None, shrink_to_fit=None,

    mergeCell=None)

参数解释(部分):

  • horizontal:字符串,设置水平对齐方式,支持左对齐、居中、右对齐等多种模式。可选值包括:

    • "general":Excel 默认常规对齐方式,数字右对齐、文本左对齐;

    • "left":文本左对齐,搭配 indent 参数可实现文本层级缩进;

    • "center":文本水平居中,是报表表头最常用的配置;

    • "right":文本右对齐,适合金额、编号类字段;

    • "justify":两端对齐,长文本排版时自动补全字符间距;

    • "centerContinuous":跨列连续居中,适配合并单元格场景。

  • vertical:字符串,设置垂直对齐方式,支持顶部对齐、居中、底部对齐。可选值包括:

    • top:文本靠单元格顶部对齐;

    • center:文本垂直居中,多行内容也会整体居中展示;

    • bottom:文本靠单元格底部对齐,是 Excel 默认的垂直对齐方式;

    • justify:垂直方向两端对齐,自动拉伸行内文本间距。

  • text_rotation:整型,设置文字旋转角度,取值范围 0~180,实现斜向文字效果;

  • wrap_text:布尔型,True 表示对长文本进行自动换行,适配单元格宽度;

  • shrink_to_fit:布尔型,True 表示自动缩小文字字号,让内容完整适配单元格尺寸;

  • indent:整型,设置文本左侧的缩进字符数,单位为标准字符宽度。使用注意事项:

    • 仅在 horizontal 设置为 left 或 right 时生效,其他对齐模式下缩进配置会被自动忽略;

    • 取值为非负整数,每增加 1 对应增加 1 个标准字符的缩进距离,最大支持缩进 15 个字符;

    • 适合制作带层级的目录、分类说明类报表,无需手动输入空格实现缩进效果。

完整的设置单元格对齐样式的代码示例如下:

from openpyxl import Workbookfrom openpyxl.styles import Font, Color, Alignmentwb = Workbook()ws = wb.activecell = ws["B3"]# 为便于演示,设置字体cell.font = Font(    name = '仿宋',    size = 16,    color = '0000FF',    bold = True)cell.value = "测试文本"# 创建一个 Alignment 对象,水平垂直居中,文字旋转 45°,自动换行,无缩进和不自动缩小字号适应单元格align = Alignment(    horizontal='center', vertical='center',    text_rotation=45, wrap_text=True,    shrink_to_fit=False, indent=0)# 应用样式到单元格cell.alignment = alignwb.save("excel_style4.xlsx")

代码执行后生成 excel_style4.xlsx 文档,文档内容如下图所示:

 Alignment 对象使用注意事项:

  • indent 参数仅在 horizontal 设置为 left 或 right 时生效,其他对齐模式下配置的缩进值会被自动忽略,不会产生任何排版变化;

  • text_rotation 取值范围严格限制在 0~180 之间,传入超出范围的数值会直接抛出参数异常,且旋转角度超过 90° 后垂直对齐效果会自动适配调整;

  • wrap_text 和 shrink_to_fit 两个参数不能同时设置为 True,因为 Excel 会优先执行自动缩小字号逻辑,自动换行配置会被覆盖失效。

受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件‌的相关知识。

最新文章

随机文章