如何使用Python-docx实现同一行放置多个独立表格
要在Word同一行放置两个独立表格,你之前尝试的WD_TABLE_DIRECTION(控制表格内文字方向)和WD_TABLE_ALIGNMENT(控制单个表格在页面的水平对齐)本身就不支持同行多表格布局,正确实现方式是使用无边框嵌套父表格实现效果,具体操作如下:
from docx import Document from docx.shared import Pt # 初始化文档 document = Document() # 1. 创建1行2列的父容器表格,用于承载两个并排的子表格 parent_table = document.add_table(rows=1, cols=2) parent_table.autofit = False # 2. 隐藏父表格所有边框,让它仅作为布局容器不显示在文档中 for row in parent_table.rows: for cell in row.cells: # 操作底层xml删除单元格边框 tc = cell._tc tcPr = tc.get_or_add_tcPr() exist_borders = tcPr.xpath('./w:tcBorders') if exist_borders: tcPr.remove(exist_borders[0]) # 按需设置两个单元格宽度,示例为各占300磅宽度 cell.width = Pt(300) # 3. 在第一个单元格插入第一个独立表格,样式、内容可单独配置 cell1 = parent_table.cell(0, 0) table1 = cell1.add_table(rows=3, cols=3) table1.style = 'Table Grid' for i in range(3): for j in range(3): table1.cell(i, j).text = f"表1-{i+1}行{j+1}列" # 4. 在第二个单元格插入第二个独立表格,和第一个表格完全独立 cell2 = parent_table.cell(0, 1) table2 = cell2.add_table(rows=3, cols=3) table2.style = 'Table Grid' for i in range(3): for j in range(3): table2.cell(i, j).text = f"表2-{i+1}行{j+1}列" # 保存文档 document.save("同行双表格.docx")
补充说明
- 两个子表格完全独立,样式、数据调整互不影响
- 父表格边框完全隐藏,查看、打印时都不会显示,视觉效果就是两个并排的独立表格
- 如果需要调整两个表格的间距,修改父表格单元格宽度、或者设置单元格内边距即可
内容的提问来源于stack exchange,提问作者Israr Hussain Rao
相关产品推荐
相关产品推荐

