Python-docx 模块基础入门之一 全局视角概念介绍

Python-docx是一个Python的第三方库,用于创建和更新微软的Word文档,国产永中Office,WPS、开源办公软件libre_office,openoffice也支持打开docx文档。

安装方式:pip install python-docx

检测是否成功:在命令行下导入docx,(不是python-docx),没有返回错误,证明安装成功。

学习python办公自动化心得 python办公自动化之Word篇(1)

python-docx 模块视角下的Word文档格式

学习python办公自动化心得 python办公自动化之Word篇(2)

Word文档格式

Python-docx模块把整个文章看作一个Document对象(以后简称doc),文档内容包括:文本,表格,图片图表等。

先说段落Paragraph对象

每个doc对象包括多个段落Paragraph对象(简称p),这些段落p对象保存在doc.paragraphs属性中,以列表形式返回。每个段落p对象由多个的块对象Run组成,存放在p.runs属性中,run是Word文档的最小单位,不能说一段话就是一个run文字块。例如下图就有4个不同的块对象。

学习python办公自动化心得 python办公自动化之Word篇(3)

run文字块

再说表格Table对象

学习python办公自动化心得 python办公自动化之Word篇(4)

在Word中的表格叫table,它和Excel中的差不多,由列、行、单元格组成。

Python-docx的文档结构概括如下:

  1. Document-->Paragraph-->Run
  2. Document-->Table-->Row/Column-->Cell
python-docx 能干什么的官方全局模样

give your the code:(由黑板课爱技术详细注释)

from docx import Document from 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列,并且赋给变量table table = 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办公自动化心得 python办公自动化之Word篇(5)

官方生成文档图片

亲爱的网友,如果你能看懂了全局的模样,稍加锻炼,python处理Word文档的系列文章,你跳过都没有问题哦^_^,等我的实战篇章。

,