Python Docx Table 行高
Python Docx Table row height
所以列宽是使用一列中所有单元格的单元格宽度来完成的,就像这样:
from docx import Document
from docx.shared import Cm
file = /path/to/file/
doc = Document(file)
table = doc.add_table(4,2)
for cell in table.columns[0].cells:
cell.width = Cm(1.85)
不过,行高是用rows做的,但是我不记得上周是怎么做的了。
现在我设法找到一种方法来引用 table 中的行,但似乎无法回到那种方式。可以使用 add_row 方法更改高度,但不能创建没有行的 table,因此最上面的行将始终是默认高度,大约 1.6cms。
有一种方法可以不使用 add_paragraph 来访问段落,有谁知道如何在不使用 add_row 方法的情况下访问行,因为我曾经在 a 中设置行高table 作为默认值。
我试过了,但没用:
row = table.rows
row.height = Cm(0.7)
不过这样虽然不报错,但对高度也没有影响。
table.rows
是一个集合,特别是一个序列,所以你需要单独访问每一行:
for row in table.rows:
row.height = Cm(0.7)
另请查看 row.height_rule
以了解您有权访问的一些相关行为:
https://python-docx.readthedocs.io/en/latest/api/table.html#row-objects
当您分配给 table.rows.height
时,它只是添加一个不执行任何操作的 .height
实例属性。这是像 Python 这样的动态语言的副作用之一,你会遇到像这样的神秘行为。不过,随着您获得更多经验,它就会消失,至少对我来说是这样:)
一些附加信息:
这里的答案是正确的,但这将给出最小行高。使用 WD_ROW_HEIGHT_RULE.EXACTLY 会将单元格高度固定为设置的行高,而忽略单元格的内容,这可能会导致以不希望的方式裁剪文本。
para = table.cell(0,0).add_paragrph('some text')
解决方案:
add_paragraph实际上是在文字上方加了一个空行。
请改用以下内容以避免使用 add_paragraph:
table.cell(0,0).paragraphs[0].text = 'some text'
或使用 add_run 可以更轻松地处理文本:
run = table.cell(0,0).paragraphs[0].add_run('some text')
run.bold = True
所以列宽是使用一列中所有单元格的单元格宽度来完成的,就像这样:
from docx import Document
from docx.shared import Cm
file = /path/to/file/
doc = Document(file)
table = doc.add_table(4,2)
for cell in table.columns[0].cells:
cell.width = Cm(1.85)
不过,行高是用rows做的,但是我不记得上周是怎么做的了。
现在我设法找到一种方法来引用 table 中的行,但似乎无法回到那种方式。可以使用 add_row 方法更改高度,但不能创建没有行的 table,因此最上面的行将始终是默认高度,大约 1.6cms。
有一种方法可以不使用 add_paragraph 来访问段落,有谁知道如何在不使用 add_row 方法的情况下访问行,因为我曾经在 a 中设置行高table 作为默认值。
我试过了,但没用:
row = table.rows
row.height = Cm(0.7)
不过这样虽然不报错,但对高度也没有影响。
table.rows
是一个集合,特别是一个序列,所以你需要单独访问每一行:
for row in table.rows:
row.height = Cm(0.7)
另请查看 row.height_rule
以了解您有权访问的一些相关行为:
https://python-docx.readthedocs.io/en/latest/api/table.html#row-objects
当您分配给 table.rows.height
时,它只是添加一个不执行任何操作的 .height
实例属性。这是像 Python 这样的动态语言的副作用之一,你会遇到像这样的神秘行为。不过,随着您获得更多经验,它就会消失,至少对我来说是这样:)
一些附加信息: 这里的答案是正确的,但这将给出最小行高。使用 WD_ROW_HEIGHT_RULE.EXACTLY 会将单元格高度固定为设置的行高,而忽略单元格的内容,这可能会导致以不希望的方式裁剪文本。
para = table.cell(0,0).add_paragrph('some text')
解决方案: add_paragraph实际上是在文字上方加了一个空行。 请改用以下内容以避免使用 add_paragraph:
table.cell(0,0).paragraphs[0].text = 'some text'
或使用 add_run 可以更轻松地处理文本:
run = table.cell(0,0).paragraphs[0].add_run('some text')
run.bold = True