相关文章推荐
不羁的四季豆  ·  IVsDataTableColumn 接口 ...·  1 月前    · 
豪爽的热水瓶  ·  How to export a Hive ...·  2 周前    · 
朝气蓬勃的火腿肠  ·  基于 Matlab ...·  3 月前    · 
想旅行的热水瓶  ·  Unity游戏动画 ...·  1 年前    · 
慷慨的抽屉  ·  swift ...·  1 年前    · 
在Word文档中表格中对齐方式的设置可以分为表格的对齐方式和单元格的对齐方式,可以通过“开始”菜单栏中的“段落”中设置表格的对齐方式,可以通过“布局”菜单栏中的“对齐方式”中设置单元格的对齐方式。
表格对齐方式设置
单元格对齐方式设置
而在python-docx包中要使用table.alignment、cell.vertical_alignment和paragraph.alignment进行设置,笔者总结了python-docx包中表格和单元格等2种设置对齐方式,并在文章最后将文章主要内容制作了思维导图。

01 表格的对齐方式

在设置表格的对齐中,将表格作为一个整体,要用到table的alignment属性。python-docx包定义了表格对齐的枚举类型,存储在docx.enum.table import WD_TABLE_ALIGNMENT中,共定义了LEFT、CENTER和RIGHT三个常量。含义如下
WD_TABLE_ALIGNMENT.LEFT :表格为左对齐 WD_TABLE_ALIGNMENT.CENTER:表格为居中对齐 WD_TABLE_ALIGNMENT.RIGHT:表格为右对齐 本文以LFET为例说明表格对齐方式的设置过程,见代码:
from docx import Document # 导入docx from docx.enum.table import WD_TABLE_ALIGNMENT # 导入表格对齐方式 from docx.shared import Cm # 导入单位转换函数 document = Document() # 新建docx文档 table = document.add_table(3, 3) # 添加表格1 table.alignment = WD_TABLE_ALIGNMENT.LEFT # 设置表格为右对齐 for col in table.columns: # 表格1设置列宽为2cm,便于演示,与设置无关 for cell in col.cells: cell.width = Cm(2) document.save('test.docx') 表格的左对齐效果见下图
表格左对齐效果图
同理,将第6行代码分别设置为居中和右对齐,见如下代码,运行后表格的效果见下图。
table.alignment = WD_TABLE_ALIGNMENT.CENTER # 设置表格为居中对齐 table.alignment = WD_TABLE_ALIGNMENT.RIGHT # 设置表格为右对齐
表格居中对齐效果图
表格右对齐效果图

02 单元格的对齐方式

在对单元格对齐方式设置的时候,将单元格视为一个整体,要使用单元格中的垂直对齐(cell.vertical_alignment)和单元格中的段落的对齐(paragraph.alignment)等2种对齐方式配合使用。在docx.enum.table .WD_ALIGN_VERTICAL定义了TOP、CENTER和BOTTOM等3种类型,含义如下:
WD_CELL_VERTICAL_ALIGNMENT.TOP:单元格内容靠上对齐 WD_CELL_VERTICAL_ALIGNMENT.CENTER:单元格内容居中对齐 WD_CELL_VERTICAL_ALIGNMENT.BOTTOM:单元格内容靠下对齐 在WD_PARAGRAPH_ALIGNMENT中定义了4中类型,分别是LEFT、CENTER、RIGHT和JUSTIFY等4中类型,含义如下:
WD_PARAGRAPH_ALIGNMENT.LEFT:段落左对齐 WD_PARAGRAPH_ALIGNMENT.CENTER:段落居中对齐 WD_PARAGRAPH_ALIGNMENT.RIGHT:段落右对齐 WD_PARAGRAPH_ALIGNMENT.JUSTIFY:段落两端对齐 关于段落的设置可以参考文章 python-docx段落设置 。在单元格垂直对齐和段落对齐的配合过程中可以组合成12种方式,分别是:靠上两端对齐、靠上居中对齐、靠上右对齐、中部两端对齐、中部居中对齐、中部右对齐、靠下两端对齐、靠下居中对齐、靠下右对齐、靠上左对齐、中部左对齐、靠下左对齐。其中,在WORD软件中内置了前9种对齐方式。这9种对齐方式的设置代码如下:
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT # 导入单元格垂直对齐 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT # 导入段落对齐 document = Document() table = document.add_table(3, 3) # 添加表格1 for row in table.rows: row.height = Cm(3) # 设置表格行高为3cm,便于演示,与设置对齐无关 cell = table.cell(0,0) cell.text = "靠上两端对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOP cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY cell = table.cell(0,1) cell.text = "靠上居中对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOP cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER cell = table.cell(0,2) cell.text = "靠上右对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOP cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT cell = table.cell(1,0) cell.text = "中部两端对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY cell = table.cell(1,1) cell.text = "中部居中对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER cell = table.cell(1,2) cell.text = "中部右对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT cell = table.cell(2,0) cell.text = "靠下两端对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.BOTTOM cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFY cell = table.cell(2,1) cell.text = "考下中部对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.BOTTOM cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER cell = table.cell(2,2) cell.text = "靠下右对齐" cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.BOTTOM cell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT 运行效果见下图:
9种对齐方式与WORD软件中对应图
另外三种的设置可以参考上述代码。
笔者总结了python-docx包中对表格和单元格的对齐方式,制作了思维导图见下图。希望对使用python-docx包设置docx表格对齐时提供参考。
举报/反馈

我也会编程

948获赞 190粉丝
专注于科学计算,GIS,编程,软件开发。
关注
0
0
收藏
分享
微信好友
新浪微博
复制链接
扫码分享至微信