python docx set table cell background and text color

前端 未结 6 760
故里飘歌
故里飘歌 2021-01-12 20:51

I am using python 2.7 with docx and I would like to change the background and text color of cells in my table based on condition.

I could not find any usefull resour

6条回答
  •  一向
    一向 (楼主)
    2021-01-12 21:28

    What we found is that, if you do cell.add_paragraph('sometext', style_object), it will keep the existing empty paragraph and add an additional paragraph with the style, which is not ideal.

    What you will want to do is something like:

    # replace the entire content of cell with new text paragraph
    cell.text = 'some text'
    # assign new style to the first paragraph
    cell.paragraphs[0].style = style_object 
    

    Note that the style is applied to the paragraph not the cell, which isn't ideal for background colors (since it won't fill the enter cell if you have some padding. I haven't found a way around that (except in the case where you want EVERY cell to have a background color, you can apply a style to table.style).

    Also, make sure that your styles are defined. You can check

    styles = documents.styles
    for s in styles:
      print s.name
    

    to see all the styles you have. You can define new styles and also load a template document with pre-defined styles already.

提交回复
热议问题