尝试设置表格列宽度,但我不能。
根据我在这里查找的线程,类似这样的内容应该设置单元格宽度。不确定 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??
请问有什么建议吗?