Python Docx表格列宽

4
我知道我缺少了一些简单的东西,但它没能理解透彻。我知道我必须在每个单元格上设置宽度。
我想在Word文档中构建一个表格,其中第一列为1.2英寸,第二列为5.3英寸。当我尝试以下操作时,第一列为0.63英寸,第二列为1.72英寸。似乎无论我对宽度大小做什么更改都没有用。我已经在第一列上尝试过3.0,但它仍显示为0.63英寸。我错过了什么?
import docx

doc = docx.Document()
doc.add_heading('Name: ', level=1)

table = doc.add_table(rows=4, cols=2)
table.cell(0,0).width = 1.2
table.cell(1,0).width = 1.2
table.cell(2,0).width = 1.2
table.cell(3,0).width = 1.2
table.cell(0,1).width = 5.3
table.cell(1,1).width = 5.3
table.cell(2,1).width = 5.3
table.cell(3,1).width = 5.3

table.cell(0,0).text = 'Time Zone'
table.cell(1,0).text = 'Link'
table.cell(1,1).text = 'https://www.google.com/'
table.cell(2,0).text = 'Website'
table.cell(3,0).text = 'Facebook'

doc.save('test.docx')
2个回答

8

您可以这样使用英寸:

table.cell(0,0).width = Inches(1.0)

1
from docx.shared import Inches - cvanbeek

6

单元格对象的宽度以EMUs为单位,而不是英寸: https://python-docx.readthedocs.io/en/latest/api/table.html#docx.table._Cell.width

一英寸等于914400 EMUs,因此请将您的代码转换如下即可:

table.cell(0,0).width = 1097280     # 1.2 * 914400
table.cell(1,0).width = 1097280
table.cell(2,0).width = 1097280
table.cell(3,0).width = 1097280
table.cell(0,1).width = 4846320    # 5.3 * 914400 
table.cell(1,1).width = 4846320
table.cell(2,1).width = 4846320
table.cell(3,1).width = 4846320

完美。谢谢。完全错过了EMU的事情。现在正常工作。 - ScottC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接