在Word文档中表格中对齐方式的设置可以分为表格的对齐方式和单元格的对齐方式,可以通过“开始”菜单栏中的“段落”中设置表格的对齐方式,可以通过“布局”菜单栏中的“对齐方式”中设置单元格的对齐方式。
表格对齐方式设置 单元格对齐方式设置 而在python-docx包中要使用table.alignment、cell.vertical_alignment和paragraph.alignment进行设置,笔者总结了python-docx包中表格和单元格等2种设置对齐方式,并在文章最后将文章主要内容制作了思维导图。
在设置表格的对齐中,将表格作为一个整体,要用到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 # 导入docxfrom docx.enum.table import WD_TABLE_ALIGNMENT # 导入表格对齐方式from docx.shared import Cm # 导入单位转换函数document = Document() # 新建docx文档table = document.add_table(3, 3) # 添加表格1table.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 # 设置表格为右对齐
表格居中对齐效果图 表格右对齐效果图 在对单元格对齐方式设置的时候,将单元格视为一个整体,要使用单元格中的垂直对齐(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) # 添加表格1for row in table.rows: row.height = Cm(3) # 设置表格行高为3cm,便于演示,与设置对齐无关cell = table.cell(0,0)cell.text = "靠上两端对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOPcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFYcell = table.cell(0,1)cell.text = "靠上居中对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOPcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTERcell = table.cell(0,2)cell.text = "靠上右对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.TOPcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHTcell = table.cell(1,0)cell.text = "中部两端对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTERcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFYcell = table.cell(1,1)cell.text = "中部居中对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTERcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTERcell = table.cell(1,2)cell.text = "中部右对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTERcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHTcell = table.cell(2,0)cell.text = "靠下两端对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.BOTTOMcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.JUSTIFYcell = table.cell(2,1)cell.text = "考下中部对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.BOTTOMcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.CENTERcell = table.cell(2,2)cell.text = "靠下右对齐"cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.BOTTOMcell.paragraphs[0].alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT运行效果见下图:
9种对齐方式与WORD软件中对应图 另外三种的设置可以参考上述代码。
笔者总结了python-docx包中对表格和单元格的对齐方式,制作了思维导图见下图。希望对使用python-docx包设置docx表格对齐时提供参考。