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() 関数を追加しました。これにより、任意のセルを 1 つの行に結合できます。python-docx に含まれることを願っています。それまでの間、私の github "merge_cells_feature" python-docx branchから取得できます。

プルリクエストで書いた例を参照用にコピーしています:

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 に答える