使用 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
结果:
我是新来的(也是 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
结果: