目录

python操作word文档python-docx

python操作word文档——python-docx

一、安装

1.python-docx pypi

https://i-blog.csdnimg.cn/blog_migrate/76cf6185a9ce88ab02773170cdfa785a.png

2.安装

https://i-blog.csdnimg.cn/blog_migrate/d8feec6d06a4ae57867bd5183158c042.png

pip install python-docx
pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple

二、官网

1.点击 Homepage

https://i-blog.csdnimg.cn/blog_migrate/6b720ff0fb909ce30197935a7af102c9.png

https://i-blog.csdnimg.cn/blog_migrate/dab18327afb246ea512ec40a0959bec0.png

2.快速入门

①打开、保存

from docx import Document

document = Document()

document.save('demo.docx')

②添加段落

document.add_paragraph('这是一段文字')

③ 添加图片

document.add_picture('1.jpg')

设置尺寸

from docx.shared import Inches

document.add_picture('image-filename.png', width=Inches(1.0))

④分页

document.add_page_break()

三、其他格式设置

from docx import Document
from docx.shared import Pt  # 设置像素、缩进等
from docx.shared import RGBColor  # 设置字体颜色
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

document = Document()

a = document.add_paragraph('        这是一段文字')  # 俩空格“        ”
# a.runs[0].font.bold = True #设置加粗
# a.runs[0].font.italic = True#设置斜体
# a.runs[0].font.underline = True#设置下划线
# a.runs[0].font.strike = True #设置删除线
# a.runs[0].font.shadow = True #设置文字阴影
# a.runs[0].font.size = Pt(18) #设置字号
# a.runs[0].font.color.rgb = RGBColor(255,0,255)#设置字体颜色

a.runs[0].font.name = "微软雅黑"  # 设置字体 必写行1
r = a.runs[0]._element.rPr.rFonts  # 设置字体 必写行2
r.set(qn("w:eastAsia"), "微软雅黑")  # 设置字体 必写行3

a.paragraph_format.line_spacing = Pt(25)  # 设置行高

# 设置文字在这一行的纵向位置,通常设置段后为0,和行号,来调整行间距
# a.paragraph_format.space_before = Pt(0)  # 段前
a.paragraph_format.space_after = Pt(0)  # 段后

# a.paragraph_format.left_indent = Pt(20)#左缩进
# a.paragraph_format.right_indent = Pt(20)#右缩进
a.paragraph_format.first_line_indent = Pt(20)  # 首行缩进

'''
LEFT	左对齐
CENTER	居中
RIGHT	右对齐
JUSTIFY	自由调整
DISTRIBUTE	占满整个段落的宽度
JUSTIFY_MED	以中等字符压缩比调整
JUSTIFY_HI	具有高字符压缩比
JUSTIFY_LOW	以较低的字符压缩比进行调整
THAI_JUSTIFY	根据泰语格式布局对齐
'''
# a.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER


document.save('demo1.docx')

四、案例

from docx import Document
from docx.shared import Pt  # 设置像素、缩进等
from docx.shared import RGBColor  # 设置字体颜色
from docx.oxml.ns import qn
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT


def setStyle_zong_title1(a):
    a.runs[0].font.name = "宋体"  # 设置字体 必写行1
    r = a.runs[0]._element.rPr.rFonts  # 设置字体 必写行2
    r.set(qn("w:eastAsia"), "宋体")  # 设置字体 必写行3
    a.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 设置居中
    a.runs[0].font.size = Pt(18)  # 设置字号
    a.paragraph_format.space_after = Pt(0)


def setStyle_duan_title1(a):
    a.runs[0].font.name = "宋体"  # 设置字体 必写行1
    r = a.runs[0]._element.rPr.rFonts  # 设置字体 必写行2
    r.set(qn("w:eastAsia"), "宋体")  # 设置字体 必写行3
    a.runs[0].font.size = Pt(14)  # 设置字号
    a.paragraph_format.space_after = Pt(0)  # 断后


def setStyle_duan_message1(a):
    a.runs[0].font.name = "宋体"  # 设置字体 必写行1
    r = a.runs[0]._element.rPr.rFonts  # 设置字体 必写行2
    r.set(qn("w:eastAsia"), "宋体")  # 设置字体 必写行3
    a.runs[0].font.size = Pt(10)  # 设置字号
    a.paragraph_format.space_after = Pt(0)  # 断后
    a.paragraph_format.first_line_indent = Pt(20)  # 首行做进


if __name__ == '__main__':
    document = Document()
    a = document.add_paragraph('这是标题')
    setStyle_zong_title1(a)
    a = document.add_paragraph('一、这是标题')
    setStyle_duan_title1(a)
    a = document.add_paragraph('这是内容')
    setStyle_duan_message1(a)

    document.save('demo1.docx')