如何在 python docx 中将行单元格的文本加粗?

Man*_*kur 4 python python-docx

我正在使用 python docx 模块生成文档。我想将 python docx 中一行的特定单元格加粗

这是代码

book_title = '\n-:\n {}\n\n'.format(book_title)
book_desc = '-: {}\n\n:\n{}\n\n :\n{}'.format(book.author,book_description,sales_point)


row1.cells[1].text = (book_title + book_desc)
Run Code Online (Sandbox Code Playgroud)

我只想将 book_title 加粗。如果我应用一种样式,它会自动应用于整个文档。

sca*_*nny 7

单元格没有字符样式;字符样式只能应用于文本,特别是连续的文本。这实际上是运行的定义特征,是共享相同字符格式的字符序列,也称为.python-docx

要使书名的字体与描述的字体不同,它们需要出现在单独的运行中。分配给Cell.text(如您所拥有的)会导致所有文本都在一次运行中。

这可能对您有用,但假设单元格在您开始时为空:

paragraph = row1.cells[1].paragraphs[0]
title_run = paragraph.add_run(book_title)
description_run = paragraph.add_run(book_desc)
title_run.bold = True
Run Code Online (Sandbox Code Playgroud)

这段代码可以变得更紧凑:

paragraph = row1.cells[1].paragraphs[0]
paragraph.add_run(book_title).bold = True
paragraph.add_run(book_desc)
Run Code Online (Sandbox Code Playgroud)

但也许前一个版本更清楚地说明了您在每一步中所做的事情。