zoukankan      html  css  js  c++  java
  • docx模块的使用

    docx模块

    python在安装时,默认的编码是ascii,当程序中出现非ascii编码时,python的处理常常会报错UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128),python没办法处理非ascii编码的,此时需要自己设置python的默认编码,一般设置为utf8的编码格式。
    
    在程序中加入以下代码:即可将编码设置为utf8
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    或者直接加:
    # -*- coding:utf-8 -*-
    # coding:utf-8
    
    """
        python 操作word
    """
    
    from docx import Document
    from docx.shared import Inches
    
    # 创建word文档对象
    document = Document()
    # 添加标题
    document.add_heading('Document Title', 0)
    
    # 添加段落
    p = document.add_paragraph('A plain paragraph having some ')
    
    # 添加段落文字,并指定样式:这里设置文字为加粗
    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'  # 样式为数字
    )
    
    # 插入图片:Inches表示以英寸作为图片的单位
    document.add_picture('pic.jpg', width=Inches(3.0))
    
    records = (
        (3, '101', 'Spam'),
        (7, '422', 'Eggs'),
        (4, '631', 'Spam, spam, eggs, and spam')
    )
    
    # 创建一行三列的表格
    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'
    
    # 给table表格添加新行,并给各列添加内容
    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()
    
    # 保存world文档
    document.save('demo.docx')
    
    if __name__ == "__main__":
        pass
  • 相关阅读:
    windows用户管理与远程管理
    Linux之基础网络配置
    linux之程序包管理
    linux之特殊权限
    设计模式学习笔记——Prototype原型模式
    设计模式学习笔记——Visitor 访问者模式
    XXX is not a function
    终于决定要开始写自己的博客了,先Mark一下
    element ui 与vue跨域通信操作 和框架语法,contentype
    跨域与版本控制
  • 原文地址:https://www.cnblogs.com/yescarf/p/12720122.html
Copyright © 2011-2022 走看看