在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 # 導入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 # 設置表格為右對齊
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) # 添加表格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運行效果見下圖:
另外三種的設置可以參考上述代碼。
筆者總結了python-docx包中對表格和單元格的對齊方式,製作了思維導圖見下圖。希望對使用python-docx包設置docx表格對齊時提供參考。