美文网首页
Python 全栈:用 Python 操作 Word 和 Pow

Python 全栈:用 Python 操作 Word 和 Pow

作者: you的日常 | 来源:发表于2022-01-09 20:59 被阅读0次

    在日常工作中,有很多简单重复的劳动其实完全可以交给 Python 程序,比如根据样板文件(模板文件)批量的生成很多个 Word文件或 PowerPoint 文件。Word 是微软公司开发的文字处理程序,相信大家都不陌生,日常办公中很多正式的文档都是用Word进行撰写和编辑的,目前使用的 Word 文件后缀名一般为 .docx。PowerPoint 是微软公司开发的演示文稿程序,是微软的Office系列软件中的一员,被商业人士、教师、学生等群体广泛使用,通常也将其称之为“幻灯片”。在 Python 中,可以使用名为 python-docx 的三方库来操作 Word,可以使用名为 python-pptx 的三方库来生成 PowerPoint。

    操作Word文档

    我们可以先通过下面的命令来安装 python-docx 三方库。

    pip install python-docx
    

    按照 官方文档 的介绍,我们可以使用如下所示的代码来生成一个简单的Word文档。

    from docx import Document
    from docx.shared import Cm, Pt
    
    from docx.document import Document as Doc
    
    # 创建代表Word文档的Doc对象
    document = Document()  # type: Doc
    # 添加大标题
    document.add_heading('快快乐乐学Python', 0)
    # 添加段落
    p = document.add_paragraph('Python是一门非常流行的编程语言,它')
    run = p.add_run('简单')
    run.bold = True
    run.font.size = Pt(18)
    p.add_run('而且')
    run = p.add_run('优雅')
    run.font.size = Pt(18)
    run.underline = True
    p.add_run('。')
    
    # 添加一级标题
    document.add_heading('Heading, level 1', level=1)
    # 添加带样式的段落
    document.add_paragraph('Intense quote', style='Intense Quote')
    # 添加无序列表
    document.add_paragraph(
        'first item in unordered list', style='List Bullet'
    )
    document.add_paragraph(
        'second item in ordered list', style='List Bullet'
    )
    # 添加有序列表
    document.add_paragraph(
        'first item in ordered list', style='List Number'
    )
    document.add_paragraph(
        'second item in ordered list', style='List Number'
    )
    
    # 添加图片(注意路径和图片必须要存在)
    document.add_picture('resources/guido.jpg', width=Cm(5.2))
    
    # 添加分节符
    document.add_section()
    
    records = (
        ('骆昊', '男', '1995-5-5'),
        ('孙美丽', '女', '1992-2-2')
    )
    # 添加表格
    table = document.add_table(rows=1, cols=3)
    table.style = 'Dark List'
    hdr_cells = table.rows[0].cells
    hdr_cells[0].text = '姓名'
    hdr_cells[1].text = '性别'
    hdr_cells[2].text = '出生日期'
    # 为表格添加行
    for name, sex, birthday in records:
        row_cells = table.add_row().cells
        row_cells[0].text = name
        row_cells[1].text = sex
        row_cells[2].text = birthday
    
    # 添加分页符
    document.add_page_break()
    
    # 保存文档
    document.save('demo.docx')
    

    提示:上面代码第7行中的注释# type: Doc是为了在PyCharm中获得代码补全提示,因为如果不清楚对象具体的数据类型,PyCharm无法在后续代码中给出Doc对象的代码补全提示。

    执行上面的代码,打开生成的Word文档,效果如下图所示。

    相关文章

      网友评论

          本文标题:Python 全栈:用 Python 操作 Word 和 Pow

          本文链接:https://www.haomeiwen.com/subject/zoglcrtx.html