3

我正在尝试使用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 让一行正确跨越多个列?

4

1 回答 1

4

我在 python-docx 的行类中添加了一个 merge_cells() 函数,它可以合并单行上的任何单元格。我希望它会被包含在 python-docx 中。同时,您可以从我的 github "merge_cells_feature" python-docx 分支中获取它。

我在这里复制我在拉取请求中写的示例以供参考:

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.
于 2014-08-04T21:22:25.873 回答