python-docx中心表内容

时间:2014-11-15 13:22:23

标签: python python-docx

我刚刚开始使用python-docx,我正试图将我的表的内容集中在一起。我有:

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'

输出带有标题test和文本example的表格。

我认为table.alignment = 1会起作用,但它什么也没做。

那么如何将所有文本对齐到中心?

3 个答案:

答案 0 :(得分:4)

以下是表格单元格垂直对齐的方法:

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

答案 1 :(得分:1)

您在python-docx中支持的设置尚未得到支持。

如果您为它添加了一个问题,可能标题为:" feature:Table.alignment",在GitHub问题列表中,我们会将其添加到待办事项列表中。 https://github.com/python-openxml/python-docx/issues

如果您还没有遇到过,可以在此处找到python-docx的文档: http://python-docx.readthedocs.org/en/latest/

答案 2 :(得分:1)

在单元格中使用段落。 像这样:

import React from 'react';
import { useSelector, useDispatch } from 'react-redux';

// Count() actually would be in a different file and CountNoodle.js
//   would import that file
function Count({count, increment, decrement}) {
  return (
    <div>
      <button onClick={increment}> + </button>
      {count}
      <button onClick={decrement}> - </button>
    </div>
  );
}

function CountNoodle() {
  const count = useSelector(state => state.countNoodle);
  const dispatch = useDispatch();

  const increment = () => dispatch({ type: 'INCREMENT_NOODLE' });
  const decrement = () => dispatch({ type: 'DECREMENT_NOODLE' });

  return <Count ...{count, increment, decrement} />;
  // or   return Count({count, increment, decrement});
}

export default CountNoodle;