python - docx 中的 add_paragraph() 添加换行符

标签 python docx python-docx

我正在使用以下代码:

def header_build(self, boldText, dataText):
    # document.add_heading('Document Title', 0)
    p = self.document.add_paragraph()
    p.style = self.document.styles['Body Text']
    p.style.font.size = Pt(12)
    p.style.font.name = 'Times New Roman'
    p.add_run(boldText).bold = True
    p.add_run(dataText)

这个想法是当我使用 header_build 函数时具有以下内容:

header_build(self, boldText='Owner: ', dataText='Name')

获取以下内容:

所有者:姓名

问题是我在尝试获取的文本之前得到了一个新行。

最佳答案

问题:

我认为这是因为您要添加到手动创建的现有文档(空文档)(不使用 python-docx)。似乎在您创建文档时,创建了 paragraphs[0],因此当您使用 add_paragraph() 添加新段落时,它会创建另一个段落 paragraphs[ 1]将第一段留空。

解决方案:

两种解决方案:

要么将文本插入段落[0],而不是创建新段落:

def header_build(self, boldText, dataText):

    # paragraph[0]
    p= self.document.paragraphs[0]

    p.style = document.styles['Body Text']
    p.style.font.size = Pt(12)
    p.style.font.name = 'Times New Roman'
    p.add_run(boldText).bold = True
    p.add_run(dataText)
    print p.text
<小时/>

或者您可以使用 python-docx 创建一个新文档,然后使用 add_paragraph() ,这将是 paragraphs[0] (没有header_build 函数的更改):

# create a new document
document = Document()

关于python - docx 中的 add_paragraph() 添加换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42963372/

相关文章:

python - 如何在python docx中更改句子的字体样式

python - 如何获取每个段落的列表编号

python-3.x - 如何从段落python docx获取图像(inlineshape)

python - mysql中django queryset extra()中的日期格式

python - 读取 csv 文件,其中列名称作为一列单元格值

c# - 以编程方式从 Xamarin.Mac 解决方案中打开文件

python - 如何为列python中的每一行应用一个函数

python - 为什么 openpyxl 无法识别我打开的现有 Excel 文件中的工作表名称?

python - 如何在 mac osx 上安装 Python docx 模块