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

如何使用python-docx仅将段落中指定单词设置为斜体而非整句

实现思路

python-docx 中段落的格式控制粒度是文本块(Run),同一个 Run 内的文本格式完全一致。你之前直接传入整段字符串生成的是单个 Run,因此无法单独修改局部文字样式,只要将需要斜体的单词拆分为独立的 Run 单独设置格式即可。

修正后完整代码
from docx import Document

names = ["names1"]
dates = ["dates1"]
client = ["client1"]
# 提前取出列表内的字符串值,避免拼接时输出列表格式
name_val = names[0]
date_val = dates[0]
client_val = client[0]

document = Document('filename.docx')
# 取原文档首段作为插入锚点
anchor_paragraph = document.paragraphs[0]

# 按最终显示顺序从下往上插入(越先插入的段落位置越靠下)
# 1. 插入To所在行
to_paragraph = anchor_paragraph.insert_paragraph_before()
to_paragraph.add_run("       ")
run_to = to_paragraph.add_run("To")
run_to.italic = True
to_paragraph.add_run(f"    {name_val}         ")
run_date = to_paragraph.add_run("Date")
run_date.italic = True
to_paragraph.add_run(f"  {date_val}")

# 2. 插入空行
anchor_paragraph.insert_paragraph_before()

# 3. 插入From所在行
from_paragraph = anchor_paragraph.insert_paragraph_before()
from_paragraph.add_run("      ")
run_from = from_paragraph.add_run("From")
run_from.italic = True
from_paragraph.add_run(f"   {name_val}             ")
run_ref = from_paragraph.add_run("Ref")
run_ref.italic = True
from_paragraph.add_run(f"   {client_val}")

# 4. 插入最上方空行
anchor_paragraph.insert_paragraph_before()

# 保存文档
document.save("modified_filename.docx")
核心说明
  • insert_paragraph_before() 方法会返回新创建的段落对象,直接操作该对象即可,不需要依赖段落索引避免顺序混乱
  • 只有单独拆分出来的 To/Date/From/Ref 四个 Run 设置了italic = True,其余文本的格式不受影响
  • 补充了文档保存逻辑,运行后直接查看 modified_filename.docx 即可验证效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:15:04