Python-docx是一个Python的第三方库,用于创建和更新微软的Word文档,国产永中Office,WPS、开源办公软件libre_office,openoffice也支持打开docx文档。
安装方式:pip install python-docx
检测是否成功:在命令行下导入docx,(不是python-docx),没有返回错误,证明安装成功。
Word文档格式
Python-docx模块把整个文章看作一个Document对象(以后简称doc),文档内容包括:文本,表格,图片图表等。
先说段落Paragraph对象
每个doc对象包括多个段落Paragraph对象(简称p),这些段落p对象保存在doc.paragraphs属性中,以列表形式返回。每个段落p对象由多个的块对象Run组成,存放在p.runs属性中,run是Word文档的最小单位,不能说一段话就是一个run文字块。例如下图就有4个不同的块对象。
run文字块
再说表格Table对象
在Word中的表格叫table,它和Excel中的差不多,由列、行、单元格组成。
Python-docx的文档结构概括如下:
Document-->Paragraph-->RunDocument-->Table-->Row/Column-->Cellpython-docx 能干什么的官方全局模样give your the code:(由黑板课爱技术详细注释)
from docx import Documentfrom docx.shared import Inches# 初始化一个文档document = Document()# 添加标题,级别是0为标题段落,document.add_heading('Document Title', 0)# 添加段落p = document.add_paragraph('A plain paragraph having some ')p.add_run('bold').bold = True # 添加p段落对应的块,要求加粗p.add_run(' and some ') # 继续添加run块p.add_run('italic.').italic = True # 添加斜体块# 添加子节标题级别可以是1-9,并且添加指定样式段落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') #数字序列样式段落# 添加图片,设定宽度(高度结合图片自动算出)document.add_picture('monty-truth.png', width=Inches(1.25))# 初始化一个记录数据records = ( (3, '101', 'Spam'), (7, '422', 'Eggs'), (4, '631', 'Spam, spam, eggs, and spam'))#给文档 添加表格1行3列,并且赋给变量tabletable = document.add_table(rows=1, cols=3)hdr_cells = table.rows[0].cells # 表格第1行的单元格列表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处理Word文档的系列文章,你跳过都没有问题哦^_^,等我的实战篇章。