Python干货| office小白处理word文档简介:基础

Python有许多第三方库。如果要使用Python处理word文档,则需要安装Python docx库。

1.安装Python docx库

首先找到python根目录(就是有python.exe的文件夹)打开Scripts文件夹

Shift+鼠标右键选择在此处打开

powershell窗口或者cmd窗口输入

pip install python-docx按下回车等待安装完成。

2、基本操作语法

2.1打开文档

document = Document() 复制代码

第一行从docx模块中引入Document类;

第二行是声明一个Document()对象,相当于创建了一个docx文档,为文档增加一些内容。

第三行进行了一些操作的文档保存到一个文件中。

不填默认为新建一个文档。

如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python裙,关注小编,并私信“01”即可进裙,领取python学习资料,会节约很多时间,减少很多遇到的难题。

from docx import Documentdocument = Document()document.save("演示如何操作Word文档.docx")# 要打开一个已存在的文件document = Document("已存在的文件名.docx")复制代码

2.2加入不同等级的标题

document.add_heading(u'总标题',0) document.add_heading(u'一级标题',1) document.add_heading(u'二级标题',2)复制代码

add_heading()方法会在文档的末尾添加标题,可以带两个参数,参数text是标题的文本,level是标题的级别,可以设置的范围是0-9,0代表文档标题,从1开始分别对应一级标题、二级标题一直到九级标题,默认值是1。

如果设置的数字超过这个范围,编译器会报ValueError。

2.3添加文本、段落

paragraph = document.add_paragraph(u'文本内容')复制代码

add_paragraph()会在文档末尾添加段落,此方法可以接受两个参数,text为段落的文本内容,这个文本内容可以包含\t、\n等特殊字符。style参数用来设置样式

from docx import Documentlyric = "那一年的雪花飘落梅花开枝头\n那一年的华清池旁留下太多愁\n"lyric = lyric + "不要说谁是谁非感情错与对\n只想梦里与你一起再醉一回\n"lyric_add = "爱恨就在一瞬间\n举杯对月情似天\n"lyric_add = lyric_add + "爱恨两茫茫\n问君何时恋"document = Document()paragraph = document.add_paragraph(text=lyric)paragraph.add_run(text= lyric_add)prior_paragraph = paragraph.insert_paragraph_before('新贵妃醉酒')document.save("1-使用段落.docx")复制代码

add_paragraph()方法会返回Paragraph()对象。该对象包含了对此段文本进行操作的一些方法和属性,如下:

  • add_run():用来追加段落内容,设置样式等。
  • clear():将段落删除,并返回该段内容,但是格式和样式会保留
  • insert_paragraph_before():在本段落之前插入新段落。
  • alignment:设置对齐方式
  • paragraph_format:设置段落格式
  • style:返回样式
  • text:返回文本

2.4设置字号

run = paragraph.add_run(u'设置字号、') run.font.size = Pt(24)复制代码

2.5设置英文字体

run = paragraph.add_run('Set Font,') run.font.name = 'Consolas'复制代码

2.6设置中文字体

run = paragraph.add_run(u'设置中文字体、') run.font.name=u'宋体' r = run._element r.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')复制代码

2.7设置斜体

run = paragraph.add_run(u'斜体、') run.italic = True复制代码

2.8 设置粗体

run = paragraph.add_run(u'粗体').bold = True复制代码

2.9增加引用

document.add_paragraph('Intense quote',  style='Intense Quote')复制代码

2.10 增加列表

document.add_paragraph(     u'无序列表元素1',  style='List Bullet' ) document.add_paragraph(     u'无序列表元素2', style='List  Bullet' )复制代码

Style=’List Bullet’为无序列表

Style=’List Number’为有序列表

2.11添加图片

add_picture(image_path_or_stream, width=None, height=None)复制代码

可以调整图片的宽和高,此处不讨论

from docx import Documentdocument = Document()document.add_picture('1.png',  width=Inches(1.25))复制代码

1.png为图片名称(图片位置必须与代码文件在同一个文件夹内)

2.12增加表格

add_table()方法会返回一个Table对象。rows代表行数,cols代表列数;style代表样式,暂时不谈。

table = document.add_table(rows=1,  cols=3) hdr_cells = table.rows[0].cells hdr_cells[0].text = 'Name' hdr_cells[1].text = 'Id' hdr_cells[2].text = 'Desc'复制代码

Table()对象中报了对表格进行操作的方法和属性,如下:

  • add_column(width):添加列(需要设置列宽)
  • add_row():添加行
  • cell(row_idx, col_idx):访问单个单元格
  • row_cells(row_idx):返回一个序列(行号为row_idx的行内所有单元格)
  • column_cells(column_idx):返回一个序列(列号为column_idx的列内所有单元格)
  • rows:返回的是_Rows对象,是一个包含了所有行(_Row对象)的列表
  • columns:返回的是_Columns对象,是一个包含了所有列(_Column对象)的列表

想要熟练使用python-docx操作Word文档:需要认识Table()、_Cell()、 _Row()、 _Rows() _Column() 和 _Columns()五个类。

2.13 再增加3行表格元素

cell()方法实际上是返回了一个_Cell()对象。_Cell()对象代表的是一个具体的单元格,包含了操作一个单个单元格的方法与属性,如下:

  • add_paragraph(text=u”, style=None):在单元格内添加段落。
  • add_table(rows, cols):在单元格中添加表格
  • merge(other_cell):合并单元格
    for i in range(3): row_cells = table.add_row().cells row_cells[0].text =
    ‘test’+str(i) row_cells[1].text = str(i) row_cells[2].text =
    ‘desc’+str(i) 复制代码

2.14增加分页

document.add_page_break()

要在Word文档中使用分页,要使用Document()对象中的add_page_break()方法,会返回一个包含一个分页符的Paragraph对象。

from docx import Documentdocument = Document()document.add_paragraph('这是第一页')document.add_page_break()document.add_paragraph('这是第二页')document.save("5-使用分页.docx")

2.15增加章节

默认是增加一个新页

document.add_section(start_type=2)复制代码

2.16保存文件

document.save(u'测试.docx')复制代码

2.17读取文档中的内容

方向:反向利用属性

(1)读取段落文本

from docx import Documentdocument = Document("1-使用段落.docx")for each in document.paragraphs:    print(each.text)复制代码

document的paragraphs属性,会返回一个列表,列表内容为文档中所有段落(为Paragraph对象)的合集。

(2)读取标题

需要注意的是,对于一个Document来说,标题也是Paragraph。所谓标题,严格上说是一种带了格式的段落。

from docx import Documentdocument = Document("0-使用标题.docx")for each in document.paragraphs:    print(each.text)复制代码

(3)读取表格单元格内容

使用tables属性,可以读取所有的表格;

from docx import Documentdocument = Document("3-使用表格.docx")for each in document.tables:    print(each)print(document.tables[0].cell(0,0).text)<docx.table.Table object at 0x0000025F43F97390> # 表格对象1                                               # 第一个表格中第一个单元格的内容复制代码

(4)读取图片

需要使用inline_shapes属性;

from docx import Documentdocument = Document("7-使用图片.docx")for each in document.inline_shapes:    print(each)<docx.shape.InlineShape object at 0x00000196D29F0A58> # 图片对象

最后多说一句,小编是一名python开发工程师,这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以关注小编,并私信“01”领取。

资源下载: