编程语言
首页 > 编程语言> > 使用python-docx跨表格中的多个列的单元格

使用python-docx跨表格中的多个列的单元格

作者:互联网

我正在尝试使用python-docx模块创建一个看起来像这样的表.

Example of the table I want to create

通过示例代码在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恢复文档时,该表将显示为:

Actual table created

如何使用python-docx获得一行以正确跨越多列?

解决方法:

我向python-docx的行类添加了merge_cells()函数,该函数可以合并一行中的任何单元格.我希望它将包含在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.

标签:python-docx,openxml,python
来源: https://codeday.me/bug/20191031/1972965.html