首页 > 解决方案 > 使用python docx居中文本

问题描述

我需要将嵌入在表格中的一小段文本居中。

传统上,您将使用以下代码居中文本

from docx.enum.text import WD_ALIGN_PARAGRAPH

paragraph = document.add_paragraph("text here")
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER

但是因为我还需要更改字体和大小,所以我需要将该文本添加到add_run()函数中。这意味着上面的代码不再有效,它甚至没有给出错误,它只是什么都不做。

我目前的代码是

from docx.enum.text import WD_ALIGN_PARAGRAPH
...
paragraph = row.cells[idx].add_paragraph().add_run("text here")
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER    #this line dose not work

限制我获得所需结果的另一件事是,实际上paragraph = document.add_paragraph()会在表格中添加一行,这将丢弃表格的尺寸,这意味着以下代码将不能令人满意:

paragraph = document.add_paragraph()
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
paragraph.add_run("text here")

我需要它在一行中完成,以避免在表格中添加额外的行。

因此,总而言之,我如何将嵌入在add_run()同一行中的函数中的一行文本居中python docx?

标签: pythonpython-docx

解决方案


编辑以演示表格中的居中文本

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

document = Document('demo.docx')

for table in document.tables:
    for row in table.rows:
        for cell in row.cells:
            for para in cell.paragraphs:
                para.alignment = WD_ALIGN_PARAGRAPH.CENTER
                para.add_run("text here")

document.save('demo.docx')

推荐阅读