You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python读取Word表格单元格中空段落的字体大小?

读取Word表格中空段落的字体大小

在Word中,段落间按回车会生成空段落,选中回车符调整字体大小可改变空行高度。现在需要用Python读取表格单元格内这类空段落的字体大小,以此计算文本上方空白区域总高度(比如3个小字号回车高度等价于2个大字号回车)。

目前可以通过以下代码读取有内容段落的字体大小:

for cell in column.cells:
  for paragraph in cell.paragraphs:
    if paragraph.text == "":
      print(font size of the empty line)
    for run in paragraph.runs:
      font_size = run.font.size  # 获取非空文本的字号

但空段落的paragraph.text为空字符串,不存在run对象,无法通过上述方式获取字号。尝试paragraph.style.font.size、paragraph.style.base_style、paragraph.text.format、paragraph.paragraph_format.space_before、paragraph.paragraph_format.line_spacing等方法均未成功,尽管在Word样式库中能看到该空段落的准确字号。

解决方法

空段落的字号信息存储在段落的XML结构中,可以通过直接操作python-docx的底层XML元素来获取:

from docx import Document
from docx.oxml.ns import qn

doc = Document("your_document.docx")

for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            for paragraph in cell.paragraphs:
                if paragraph.text.strip() == "":
                    # 获取段落的XML元素
                    p = paragraph.element
                    # 查找字号设置
                    sz = p.find(qn('w:rPr/w:sz'))
                    if sz is not None:
                        # Word中字号单位是半个点,除以2得到pt值
                        font_size = int(sz.get(qn('w:val'))) / 2
                        print(f"空段落字号:{font_size}pt")
                    else:
                        # 读取段落样式的字号作为备选
                        style_font_size = paragraph.style.font.size
                        if style_font_size is not None:
                            print(f"空段落样式字号:{style_font_size.pt}pt")
                        else:
                            print("未找到字号信息")
                else:
                    # 原有非空段落的读取逻辑
                    for run in paragraph.runs:
                        if run.font.size:
                            print(f"非空段落字号:{run.font.size.pt}pt")

说明

  • Word的XML中,字号w:sz的值单位是半个点(half-point),需要除以2得到常规的pt(磅)单位。
  • 如果空段落没有单独设置字号,则读取其应用的段落样式字号作为 fallback。

内容的提问来源于stack exchange,提问作者parase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:15:02