Python docx-在添加值后,将单元格内容置于现有表的中心
我有一个带有空表的.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”消失,这是标准行为 如何在表格中循环并再次将所有值居中?我已经在谷歌上搜索过了,但没有
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文档的前面以粗体显示,而不是隐藏起来。非常感谢。