首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图将单元与python合并

问试图将单元与python合并
EN

Stack Overflow用户
提问于 2021-05-13 17:12:46
回答 1查看 1.1K关注 0票数 0

我正试图为docx文档合并一组单元格,如下所示:

代码语言:javascript
复制
from docx import Document
from docx.shared import Inches

document = Document()

document.add_heading('Document Title', 0)

records = (
    (3, '101', 'Spam'),
    (7, '422', 'Eggs'),
    (4, '631', 'Spam, spam, eggs, and spam')
)

table = document.add_table(rows=3, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for qty, id, desc in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(qty)
    row_cells[1].text = id
    row_cells[2].text = desc

a = table.cell(0, 0)
b = table.cell(1, 1)
c = table.cell(2, 1)
d = table.cell(1, 2)

A = a.merge(b)
B = A.merge(c)
C = B.merge(d)

document.save('demo.docx')

但我明白:

代码语言:javascript
复制
Traceback (most recent call last):
  File "pdocx_error.py", line 32, in <module>
    C = B.merge(d)
  File "/home/martin/myvenv/lib/python3.8/site-packages/docx/table.py", line 232, in merge
    merged_tc = tc.merge(tc_2)
  File "/home/martin/myvenv/lib/python3.8/site-packages/docx/oxml/table.py", line 443, in merge
    top, left, height, width = self._span_dimensions(other_tc)
  File "/home/martin/myvenv/lib/python3.8/site-packages/docx/oxml/table.py", line 639, in _span_dimensions
    raise_on_tee_shaped(self, other_tc)
  File "/home/martin/myvenv/lib/python3.8/site-packages/docx/oxml/table.py", line 632, in raise_on_tee_shaped
    raise InvalidSpanError('requested span not rectangular')
docx.exceptions.InvalidSpanError: requested span not rectangular

这里出什么问题了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-13 17:12:46

我们再往后退一点。这里是没有合并的桌子:

​

以下是必须合并的1,2个单元格:

​

然后执行前两个合并:

​

因此,人们可以清楚地看到所请求的合并会产生一些非矩形的东西。然而,与下文的合并是可能的,因为它将产生一个rect,例如:

代码语言:javascript
复制
a = table.cell(0, 0)
b = table.cell(1, 1)
c = table.cell(2, 1)
d = table.cell(2, 2)

A = a.merge(b)
B = A.merge(c)
C = B.merge(d)

然后,前3行x3列将合并为一个列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67523395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档