AttributeError: 'NoneType' object has no attribute 'set'

创建Word文档时一直报错

from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor
from docx.shared import Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()
model = doc.add_paragraph('妥善保管')
model.runs[0].font.size = Pt(16)
model.alignment = WD_ALIGN_PARAGRAPH.RIGHT
model.runs[0].font.color.rgb = RGBColor(255,0,0)
doc.paragraphs[0].runs[0]._element.rPr.rFonts.set(qn('w:eastAsia'),'方正黑体_GBK')

报错:
doc.paragraphs[0].runs[0]._element.rPr.rFonts.set(qn('w:eastAsia'),'方正黑体_GBK')
AttributeError: 'NoneType' object has no attribute 'set'
思路:
在网上找了好多都是这个代码但是还是运行报错

你可以尝试在创建段落时使用add_run方法来添加文本,而不是直接使用段落文本,然后再对这个run对象进行设置。修改后的代码如下:

from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor
from docx.shared import Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH

doc = Document()
paragraph = doc.add_paragraph()
run = paragraph.add_run('妥善保管')
run.font.size = Pt(16)
paragraph.alignment = WD_ALIGN_PARAGRAPH.RIGHT
run.font.color.rgb = RGBColor(255, 0, 0)
paragraph.runs[0]._element.rPr.rFonts.set(qn('w:eastAsia'), '方正黑体_GBK')

doc.save('example.docx')


以下答案引用自GPT-3大模型,请合理使用:

示例

解决方案:

可以直接使用以下方法改变字体样式:

from docx import Document
from docx.shared import Pt

doc = Document() 
para = doc.add_paragraph('妥善保管')
para.runs[0].font.name = '方正黑体_GBK'
para.runs[0].font.size = Pt(16)
para.alignment = WD_ALIGN_PARAGRAPH.RIGHT 
para.runs[0].font.color.rgb = RGBColor(255,0,0)

如果我的回答解决了您的问题,请采纳我的回答