python-docx center table content

早过忘川 提交于 2019-12-11 08:53:46

问题


I've just started using python-docx and I'm trying to center the contents of my table. I have:

table = document.add_table(rows=1, cols=1)
tableHeader = table.rows[0].cells
tableHeader[0].text = 'test'
row_cells = table.add_row().cells
row_cells[0].text = 'example'
table.style = 'MediumGrid3'

which outputs a table with the header test and the text example.

I thought table.alignment = 1 would work, but it does nothing.

So how do I align all the text to the center?


回答1:


The setting you're asking about isn't yet supported in python-docx.

If you add an issue for it, perhaps titled: "feature: Table.alignment", to the GitHub issues list, we'll add it to the backlog. https://github.com/python-openxml/python-docx/issues

If you haven't come across it yet, you can find the documentation for python-docx here: http://python-docx.readthedocs.org/en/latest/




回答2:


Here's how to do table cell vertical alignment:

import traceback
from docx.oxml.shared import OxmlElement, qn

def set_cell_vertical_alignment(cell, align="center"): 
    try:   
        tc = cell._tc
        tcPr = tc.get_or_add_tcPr()
        tcValign = OxmlElement('w:vAlign')  
        tcValign.set(qn('w:val'), align)  
        tcPr.append(tcValign)
        return True 
    except:
        traceback.print_exc()             
        return False


来源:https://stackoverflow.com/questions/26946291/python-docx-center-table-content

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!