python - 使用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?
解决方案
编辑以演示表格中的居中文本
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')
推荐阅读
- magento - 使用 UI Select 添加自定义产品属性的问题 - Magento 2
- php - 如何加快从数据库中保存文件
- multithreading - Springboot 将任务移交给函数内的新线程
- asp.net-core - OData 如何使用 Simple.Odata.V4.Client 插入带有相关数据的新记录
- amazon-s3 - 使用 AWSSDK.S3 通过 .net-core 将文件上传到 IBM COS(S3 兼容)
- python - 通过熊猫曲线识别“相似”数据集
- html - 将 TD Align="center" 转换为 CSS
- c++ - 在 C++ 中解析整个(开始到结束)字符串,包括所有空格
- .net - 如何设置固定到任务栏的应用程序的 AppUserModelId?
- python - 如何在 Odoo 中向 One2many 字段添加约束?