为什么这没有设置宽度?

问题描述 投票:0回答:1

尝试设置表格列宽度,但我不能。

根据我在这里查找的线程,类似这样的内容应该设置单元格宽度。不确定 EMU 是什么,但我相信 Mm(10) 将 10mm 转换为 EMU。

table.cell(0,0).width = 1097280

我做了一个非常简单的表格,只有一行。我认为这应该设置列宽,但我得到的只是 3 个等宽列!尝试了很多不同的方法。

编辑:忘记放置数据

from docx import Document
from docx.shared import Pt, Mm, Cm, Inches
from docx.enum.table import WD_ALIGN_VERTICAL, WD_TABLE_ALIGNMENT

doc = Document()
heading = 'Shiny new but awkward table" \n\n'
doc.add_heading(heading, 4)
table = doc.add_table(rows=1, cols=3)
table.alignment = WD_TABLE_ALIGNMENT.CENTER
table.autofit = False
table.style = 'Table Grid'
headers = ["Name", "Age", "Occupation"]
widths = [15.9, 11.8, 26.7]
for col, col_data in enumerate(headers):
    print(col, col_data)
    table.cell(0,col).text = col_data
for col, width in enumerate(widths):
   print(col, width)
   table.cell(0, col).width = Mm(widths[col])

当然,我想获取列中的最大字符串宽度并将列宽度设置为该宽度或最大值,但现在即使设置绝对值对我来说也不起作用。

我做错了什么?也许是因为我用 Libre Office 打开它,而不是 MS Word??

请问有什么建议吗?

python-docx
1个回答
0
投票

使用 MSWORD2013 打开文档并使用另存为时,会出现以下屏幕:

选择“确定”并在 LibreOffice(版本 7.6.2)中打开文档时,它看起来不错:

© www.soinside.com 2019 - 2024. All rights reserved.