c# word 增加段落_使用Python处理Word文档

使用Python处理Word文档

1. 前言2. 使用Document对象创建文档3. 在word文档中使用标题4. 在word文档中使用段落5. 在word文档中使用列表6. 在word文档中使用表格7. 在word文档中使用章节8. 在word文档中使用分页9. 在word文档中使用图片10. 读取word文档中的内容

本文将从下面两个方向来讲述如何使用Python操作Word文档:

  1. 使用Python读写Word文档

  2. 与Word文档中各个元素相关的类

1. 前言

这一节中主要是讲解相关的内容与做好准备工作,首先是安装需要用到的工具,也就是python-docx模块。使用pip安装如下:

pip install python-docx

相信这一步大家都没问题,部分环境可能会有不能使用pip的情况,也可以使用easy_install或者源码来进行安装:

使用easy_install安装如下:

easy_install python-docx

使用源码安装如下:

tar xvzf python-docx-{version}.tar.gz
cd python-docx-{version}
python setup.py install

另外附上一个下载链接:

https:/

Linux用户可以使用wget来下载。windows用户可以打开浏览器,输入地址,使用浏览器下载。不建议使用迅雷等工具。

如果您具备一定的英语水平,可以直接阅读官方的用户手册,地址如下:

https:/

最后,关于本文内容的组织结构如下:

  • 创建一个docx文件

  • 在word文档中使用标题

  • 在word文档中使用段落

  • 在word文档中使用列表

  • 在word文档中使用表格

  • 在word文档中使用章节

  • 在word文档中使用分页

  • 在word文档中使用图片

  • 读取word文档中的内容

下面我们开始进入正文。

2. 使用Document对象创建文档

创建一个Word文档使用Document对象。如:

from docx 

案例说明:第一行为为从docx模块中引入Document类,第二行是声明一个Document()对象,相当于创建了一个docx文档,这个对象中包含了操作Word文档的方法,我们对这个对象进行的操作就是对文档进行操作,比如增加一些内容。第三行进行了一些操作的文档保存到一个文件中。

Document()对象中主要包含以下几个方法:

  • add_heading():在文档中添加标题

  • add_page_break():在文档中添加分页

  • add_paragraph():在文档中添加段落

  • add_picture():在文档中添加图片

  • add_section():在文档中添加章节

  • add_table():在文档中添加表格

  • save():将文档保存为文件或者保存到流

3. 在word文档中使用标题

若要在Word文档中添加标题,需要使用Document()对象的add_heading()方法。

u'', level=

add_heading()方法会在文档的末尾添加标题,可以带两个参数,参数text是标题的文本,level是标题的级别,可以设置的范围是0-9,0代表文档标题,从1开始分别对应一级标题、二级标题一直到九级标题,默认值是1。如果设置的数字超过这个范围,编译器会报ValueError
如下案例:

from docx 

4. 在word文档中使用段落

若要在文档中添加一段文字或一个段落,需要使用Document()对象的add_paragraph()方法。

u'', style=

add_paragraph()会在文档末尾添加段落,此方法可以接受两个参数,text为段落的文本内容,这个文本内容可以包含\t\n等特殊字符。style参数用来设置样式,关于样式会在《在word文档中使用样式》使用样式一节中做详述的说明,在这里仅做一般性的说明。

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

  • add_run():用来追加段落内容,设置样式等。

  • clear():将段落删除,并返回改段内容,但是格式和样式会保留

  • insert_paragraph_before():在本段落之前插入新段落。

  • alignment:设置对齐方式

  • paragraph_format:设置段落格式

  • style:返回样式

  • text:返回文本

实例如下:

from docx import Document

lyric = "那一年的雪花飘落梅花开枝头\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")

如上述代码会在会在文档那个中添加一串歌词。

5. 在word文档中使用列表

列表分为有序列表和无序列表,还有使用特殊样式的列表,在这里仅讲述如何使用有序列表和无序列表。

实际在Document()对象中列表是段落的一种样式。示例代码如下:

from docx 

第一行引入Document类,第二行实例化一个Document对象,第三行添加无序列表第一行,第四行添加无序列表第二行,第五行添加有序列表第一行,第六行添加有序列表第二行。

关键在于设置样式,‘List Bullet’为将段落设置为无序列表,‘List Number’为将段落设置为有序列表。

6. 在word文档中使用表格

在Word中使用表格是一个比较复杂的内容。这一点与使用Python操作Excel相差不大,本节不会涉及太多与样式有关的内容,关于样式会在《在word文档中使用样式》使用样式一节中做详述的说明。

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

在Word文档中添加表格需要使用Document()对象的add_table()方法。

None)

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

如:

# 添加一个三行三列的表格

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对象)的列表

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

  • add_paragraph(text=u'', style=None):在单元格内添加段落。

  • add_table(rows, cols):在单元格中添加表格

  • merge(other_cell):合并单元格

_Rows/_Columns对象返回的是一个包含了_Rows/_Column对象的列表,可以当做一般列表使用索引来访问,这时它的元素是表格中的每一行/列。_Rows/_Columns对象中包含了一个属性,如下:

  • table:用来返回它所属的列表

_Row对象代表是表格中的行,具有如下属性:

  • cells:即这一行所有的单元格,是个列表

  • height:行高

  • height_rule:行高规则,如果没有设置,则默认没有

  • table:用来返回它所属的列表

_Column对象代表的是表格中的列,具有如下属性:

  • cells:即这一列所有的单元格,是个列表

  • table:用来返回它所属的列表

  • width:列宽

from docx 

7. 在word文档中使用章节

要在Word文档中使用章节,要使用Document()对象中的add_section()方法。

add_section(start_type=2)

可以接收一个参数,默认是增加一个新页。

from docx 

8. 在word文档中使用分页

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

示例如下:

from docx 

9. 在word文档中使用图片

要在Word文档中添加图片,需要使用Document()对象中的add_picture()方法。

None, height=

add_picture()方法可以接收三个参数,即图片来源(可以是一个路径,或者流),宽度和长度。示例如下:

from docx 

10. 读取word文档中的内容

在前面我们已经讲了足够多的内容,读者基本已经可以根据自己的需求向文档中插入相关的内容。

那么应该如何读取文档中的内容呢?

那就是利用属性。先来读取段落试试看吧:

from docx 

document的paragraphs属性,会返回一个列表,列表内容为文档中所有段落(为Paragraph对象)的合集。需要注意的是,对于一个Document来说,标题也是Paragraph。如果你这样用:

from docx 

所谓标题,严格上说是一种带了格式的段落。

同理,使用tables属性,可以读取所有的表格。

from docx 

如果要读取图片,需要使用inline_shapes属性。

from docx 

今天的内容就到这里,我们下期再见!

如果您对本文或者本公众号感兴趣,欢迎关注我的公众号,留言您想看的内容,在这里,我们一起成长!decc308c68ba86c6fc22720e6c8ad0f1.png

45c874236afab5d9d12ab29c6e1b1e8e.png

"不止于编程"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值