美文网首页通过python看世界Pythonoffice
Python-Docx库 | Word与Python的完美结合(

Python-Docx库 | Word与Python的完美结合(

作者: Python自动化办公社区 | 来源:发表于2021-03-09 19:36 被阅读0次

    什么是Python-Docx?

    python-docx是用于创建和更新Microsoft Word(.docx)文件的Python库。

    日常需要经常处理Word文档,发现了一个新的Python包:Python-docx,处理docx十分方便。

    而且这个包和pandas包结合使用,可以在word插入excel表格,节省了很多复制、粘贴、调整表格样式的时间,真的很方便!

    但是要注意:Python-docx只能处理docx、docx、docx文件!

    下面给大家介绍一下如何使用Python-docx吧,抛砖引玉~

    安装

    • 由于 python-docx 已经提交给 PyPI 仓库,所以可以使用 pip 安装,如下:
       pip install python-docx
    
    • 如果同时安装了 python2 和 python3 那么 pip 可能不能用,可以使用 pip3 来安装,如下:
      pip3 install python-docx
    

    文档下载

    Python-Docx的官网提供了使用文档:该文档说明了如何使用Python-Docx的所有功能,并包含完整的API参考。在下载中包含的示例中也很好地展示了Python-Docx的功能。

    需要《Python-Docx库使用文档》的同学,可以关注公众号 👉 锋哥和小明的日常,后台回复「文档自动化」可以获得文档资源哦~

    使用

    这里用直接用代码给大家演示,如何生成下图所示的文档,内容包含:

    1. 导入python-docx库
    2. 新建wrod文档、一级、二级、三级标题、自然段
    3. 设置字体格式
    4. 在指定位置添加图片
    5. 在指定位置添加表格
    # 1、导入python-docx库
    from docx import Document
    from docx.shared import Inches
    
    document = Document()
    
    document.add_heading('Document Title', 0)
    # 2、新建wrod文档、一级、二级、三级标题、自然段
    p = document.add_paragraph('A plain paragraph having some ')
    # 3、设置字体格式
    p.add_run('bold').bold = True
    p.add_run(' and some ')
    p.add_run('italic.').italic = True
    
    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(
        'first item in ordered list', style='List Number'
    )
    # 4、在指定位置添加图片
    document.add_picture('monty-truth.png', width=Inches(1.25))
    
    records = (
        (3, '101', 'Spam'),
        (7, '422', 'Eggs'),
        (4, '631', 'Spam, spam, eggs, and spam')
    )
    # 5、在指定位置添加表格
    table = document.add_table(rows=1, cols=3)
    hdr_cells = table.rows[0].cells
    hdr_cells[0].text = 'Qty'
    hdr_cells[1].text = 'Id'
    hdr_cells[2].text = 'Desc'
    for qty, id, desc in records:
        row_cells = table.add_row().cells
        row_cells[0].text = str(qty)
        row_cells[1].text = id
        row_cells[2].text = desc
    
    document.add_page_break()
    
    document.save('demo.docx')
    

    其他资源

    可以在Python-Docx的GitHub页面上找到更多示例代码。

    https://github.com/python-openxml/python-docx

    相关文章

      网友评论

        本文标题:Python-Docx库 | Word与Python的完美结合(

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