Python docx-在添加值后,将单元格内容置于现有表的中心

Python docx-在添加值后,将单元格内容置于现有表的中心,docx,python-docx,Docx,Python Docx,我有一个带有空表的.docx模板,我在其中添加值: def manipulate_table(): table = doc.tables[0] table.cell(0, 0).text = 'A' table.cell(0, 1).text = 'B' table.cell(0, 2).text = 'C' table.cell(0, 3).text = 'D' 添加这些值后,表属性“Centered”消失,这是标准行为 如何在表格中循环并再次将所有值居中?我已经在谷歌上搜索过了,但没有

我有一个带有空表的.docx模板,我在其中添加值:

def manipulate_table():

table = doc.tables[0]

table.cell(0, 0).text = 'A'
table.cell(0, 1).text = 'B'
table.cell(0, 2).text = 'C'
table.cell(0, 3).text = 'D'
添加这些值后,表属性“Centered”消失,这是标准行为

如何在表格中循环并再次将所有值居中?我已经在谷歌上搜索过了,但没有发现任何有用的东西。例如:不起作用:

for cell in ....????:
    tc = cell._tc
    tcPr = tc.get_or_add_tcPr()
    tcVAlign = OxmlElement('w:vAlign')
    tcVAlign.set(qn('w:val'), "center")
    tcPr.append(tcVAlign)

非常感谢您的帮助。

单元格上的
.text
属性完全替换单元格中的文本,包括以前的段落

“居中”属性位于每个段落上,而不是单元格上。所以你需要做一些类似的事情:

from docx.enum.text import WD_ALIGN_PARAGRAPH
cell.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER

对于每个“新”段落(分配给
。text
将使您在每个单元格中只剩下一个段落)。

谢谢。这对我很有用:table.cell(0,0)。段落[0]。对齐=WD\u ALIGN\u段落。LEFT@ProjektWeinheim:这怎么可能?根据您的问题,它将再次应用左对齐对正,这是您已经得到但不想要的。
单元格。段落[0]。alignment=WD_ALIGN_段落。CENTER
对我有效“单元格上的.text属性完全替换单元格中的文本,包括以前存在的段落。”这应该在API文档的前面以粗体显示,而不是隐藏起来。非常感谢。