docx是经常用到的文档格式,经常需要python批量生成docx文档。
这里示例如何用python写文本到docx,并以仿宋_GB2312为例示例如何设置格式。
所用代码示例参考和修改自网络资料。
1 添加段落示例
这里示例如何写段落到docx文件。
from docx import Document
from docx.shared import Pt
from docx.shared import RGBColor
# 打开或创建一个Word文档
doc = Document()
# 添加一个新的段落
paragraph = doc.add_paragraph('这是一个有特定格式的段落。')
# 设置字体、大小和颜色
run = paragraph.add_run('这是加粗和蓝色的文本。')
run.bold = True
run.font.size = Pt(12)
run.font.color.rgb = RGBColor(0, 0, 255)
# 保存文档
doc.save('formatted_text.docx')
2 设置字体示例
docx经常需要设置中文字体、大小、颜色等,这里以仿宋_GB2312为例,示例设置过程。
2.1 默认设置
以下是全文统一设置字体、大小的示例,这里设置段落字体为三号仿宋-GB2312。
from docx import Document
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor
document = Document()
document.add_paragraph('您好,我是aaaaa')
# 设置文档默认字体
document.styles['Normal'].font.name = '仿宋_GB2312'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋_GB2312')
# 保存word文档
document.save('bbb.docx')
2.2 段落设置
添加段落后设置字体、字号、加粗、对齐,这里设置段落字体为三号仿宋-GB2312。
from docx import Document
from docx.shared import Pt
# 创建文档
doc = Document()
# 添加段落并设置字体
paragraph = doc.add_paragraph("这是三号仿宋-GB2312字体")
# 设置段落字体
run = paragraph.runs[0]
run.font.name = '仿宋_GB2312' # 字体名称
run._element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋_GB2312') # 处理中文字体
run.font.size = Pt(16) # 三号对应16磅
# 保存文档
doc.save("示例文档.docx")
3 完整设置示例
以下是完整版本的docx格式设置示例。
from docx import Document
from docx.shared import Pt, Inches
from docx.oxml.ns import qn
from docx.enum.text import WD_ALIGN_PARAGRAPH
doc = Document()
# 设置文档默认字体
doc.styles['Normal'].font.name = '仿宋_GB2312'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋_GB2312')
# 添加标题
title = doc.add_heading("文档标题", 0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
# 添加正文
paragraph = doc.add_paragraph()
run = paragraph.add_run("这是一段使用三号仿宋-GB2312字体的文本。")
run.font.name = '仿宋_GB2312'
run._element.rPr.rFonts.set(qn('w:eastAsia'), '仿宋_GB2312')
run.font.size = Pt(16)
doc.save("完整示例.docx")
reference
Python高效操作Word:实用技巧与进阶方法
https://zhuanlan.zhihu.com/p/683904654
docx设置保存的word文档字体及大小