如何在python-docx中以粗体显示列表项目符号中的单词的一部分

时间:2019-07-03 05:53:52

标签: python python-docx

现在我有一个名为k = ['aaa bbb', 'ccc ddd', 'eee fff']的列表。 我想通过word file将列表k写入list bullet中,并且我希望aaa bbb(k [0])在word文件中为粗体。 k中其他元素的其余部分正常。

换句话说,我希望它显示为this 但是,无论如何尝试,结果都不会显示任何元素为粗体。

此外,是否可以仅将aaa设为粗体。 就像this

我尝试过类似“粗体”,“字体”,“样式”的功能。 但是它们不起作用。


    document = Document()

    k = ['aaa bbb', 'ccc ddd', 'eee fff']

    for i in range(len(k)):

    if i ==1:
        run = document.add_paragraph(k[i], style = "List Bullet")
        run.bold = True

    else:
        run = document.add_paragraph(k[i], style = "List Bullet")

结果不是我期望的。 运行后,没有粗体字符。

1 个答案:

答案 0 :(得分:1)

问题在于add_paragraph返回的是段落引用,而不是运行。

不过,我发现只创建一个空的项目符号列表,然后add_run(string),每次bold = True进行设置,更为方便。

如果我们还更改了解析行的逻辑(使用enumerate还将当前行的索引也添加到您的k列表中),则可以设置两个布尔变量make_only_first_word_bold和{{ 1}}。

对于第一行,我们指定仅一行的第一个单词必须加粗,而对于第二行,我们指定是否仅需对列表的第一行加粗。

这导致我们有四种不同的组合:没有加粗,全部加粗,所有第一个单词都加粗和只有第一行的第一个单词加粗了。

make_only_first_line_bold