我正在尝试使用python-docx模块创建一个看起来像这样的表。
使用示例代码在example-makedocument.py中创建表并阅读docx.py中的代码,我认为类似的东西可以工作:
tbl_rows = [ ['A1'],
['B1', 'B2' ],
['C1', 'C2' ] ]
tbl_colw = [ [100],
[25, 75],
[25, 75] ]
tbl_cwunit = 'pct'
body.append(table(tbl_rows, colw=tbl_colw, cwunit=tbl_cwunit))
然而,这会破坏docx文档,当Word恢复文档时,表格显示如下:
如何使用python-docx获得正确跨越多列的行?
答案 0 :(得分:4)
我将一个merge_cells()函数添加到python-docx的行类中,它可以合并单行上的任何单元格。我希望它能包含在python-docx中。在此期间,您可以从my github "merge_cells_feature" python-docx branch获取它。
我正在复制我在the pull request上写的示例,以供参考:
from docx import Document
doc = Document()
table = doc.add_table(6,6)
header_row = table.rows[0]
header_row.merge_cells()
# args can also be passed to merge_cells(mergeStart, mergeStop) in order to
# implement any kind of merge on the same row, such as:
table.rows[1].merge_cells(0,3) # This will merge the cells indexed from 0 to 2.