1

我刚刚开始使用 python-docx,我正在尝试将表格的内容居中。我有:

table = document.add_table(rows=1, cols=1)
tableHeader = table.rows[0].cells
tableHeader[0].text = 'test'
row_cells = table.add_row().cells
row_cells[0].text = 'example'
table.style = 'MediumGrid3'

它输出一个带有标题test和文本的表格example

我以为table.alignment = 1会起作用,但它什么也没做。

那么如何将所有文本对齐到中心?

4

3 回答 3

4

以下是表格单元格垂直对齐的方法:

import traceback
from docx.oxml.shared import OxmlElement, qn

def set_cell_vertical_alignment(cell, align="center"): 
    try:   
        tc = cell._tc
        tcPr = tc.get_or_add_tcPr()
        tcValign = OxmlElement('w:vAlign')  
        tcValign.set(qn('w:val'), align)  
        tcPr.append(tcValign)
        return True 
    except:
        traceback.print_exc()             
        return False
于 2016-01-20T21:12:45.363 回答
1

python-docx 尚不支持您询问的设置。

如果你为它添加一个问题,可能标题为:“feature: Table.alignment”,到 GitHub 问题列表中,我们会将它添加到积压工作中。 https://github.com/python-openxml/python-docx/issues

如果你还没有遇到它,你可以在这里找到 python-docx 的文档:http: //python-docx.readthedocs.org/en/latest/

于 2014-11-16T04:10:46.770 回答
1

在单元格中使用段落。像这样:

from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH

table = document.add_table(rows=1, cols=1)
cell = table.rows[0].cells[0]
cell_paragraph = cell.paragraphs[0]
cell_paragraph.text = 'test'
cell_paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
于 2020-04-21T07:36:02.527 回答