python-docx

Hearding Style (标题)

docx.styles['Heading 1'].font.name = 'Arial'
docx.styles['Heading 1']._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')

Paragraph Style (段落)

for para in docx.paragraphs:
para.alignment = WD_ALIGN_PARAGRAPH.LEFT
para.paragraph_format.line_spacing_rule = WD_LINE_SPACING.EXACTLY
para.paragraph_format.line_spacing = Pt(14)
para.paragraph_format.space_before = Pt(14)
para.paragraph_format.space_after = Pt(14)

Normal Style (正文)

docx.styles['Normal'].font.name = 'Arial'
docx.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')

for para in docx.paragraphs:
if para.style.name == 'Normal':
para.alignment = WD_ALIGN_PARAGRAPH.LEFT
para.paragraph_format.line_spacing = 1.5
para.paragraph_format.left_indent = Inches(0.5)
para.paragraph_format.first_line_indent = Inches(0.5)

Run Style (连续块)

for para in docx.paragraphs:
for run in para.runs:
run.font.size = Pt(14)
run.font.color.rgb = RGBColor(255, 0, 0)
run.font.name = 'Arial'
run._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')

Table Style (表格)

tbl = docx.add_table(3, 3, style='Table List Accent 1')
hdr_cells = tbl.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'

for row in tbl.rows:
for cell in row.cells:
for para in cell.paragraphs:
for run in para.runs:
run.font.name = 'Arial'
run._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')