使用 python-docx 将粗体字添加到 table

Adding words in bold to table using python-docx

我是新来的(也是 python)所以欢迎对我的 post 提出任何反馈。

我有一些代码要求输入,然后将其添加到各种表格的条目中。

例如

import docx
doc = docx.Document('ABC.docx')
length = len(doc.tables) 
name = input("What is your name?")
x = range(0,length)
for r in x:
    doc.tables[r].cell(0, 1).text = name + ": " + doc.tables[r].cell(0, 1).text
doc.save("ABC_.docx")

这会将“我爱你”之类的文字更改为“鲍勃:我爱你”,这很棒。但是,我希望 Bob 以粗体显示。我该怎么做?

不确定这是执行此操作的最佳方法,但它确实有效。基本上,您将当前单元格文本存储在一个变量中,然后清除该单元格。之后,获取单元格的第一个paragraph,并向其添加格式化的runs文本,如下:

import docx

name = input("What is your name?")

doc = docx.Document('ABC.docx')
length = len(doc.tables) 
x = range(0,length)
for r in x:
    celltext = doc.tables[r].cell(0, 1).text
    doc.tables[r].cell(0, 1).text = ""
    paragraph = doc.tables[r].cell(0, 1).paragraphs[0]
    paragraph.add_run(name).bold = True
    paragraph.add_run(": " + celltext)

doc.save("ABC_.docx")

输入:

What is your name?NewCoder

结果: