使用python-docx模块读写word文件(python写入docx)

网友投稿 586 2022-08-27


使用python-docx模块读写word文件(python写入docx)

word文档的自动化处理是一件比较头痛的事情,因为深耕于windows操作系统,对于跨平台需求的word文档编辑,是非常痛苦的一件事。在python的生态环境中,提供了python-docx这个模块,可以方便的进行跨平台的word文档处理,但是只适合word 2007以后的文档,即后缀为docx的文档。

处理excel文件,需要先创建一个workbook,与之对应,处理word文档,首先需要创建Document对象,用法如下

>>> from docx import Document>>> document = Document()

Document用于表征一个具体的word文档,在此基础上,包含了常见的各种元素,常用的几个元素列表如下

1.heading

2.paragraph

3.page break

4.table

5.picture

1. heading

heading表示标题,通过add_heading方法,可以添加标题,用法如下

>>> document.add_heading('header')

我们编辑word文档的时候,可以有多种不同等级的标题,在该模块中,通过level参数可以指定不同的等级,取值范围为0-9,用法如下

>>> document.add_heading('header', level = 0)

2. paragraph

paragraph表示段落,通过add_paragraph方法添加段落,用法如下

>>> document.add_paragraph("First paragraph")

在段落的基础上,可以通过add_run来不断进行拼接,用法如下

>>> document.add_paragraph("北京欢迎您").add_run("welcome to Beijing")

add_run的用处在于针对部分文字,单独进行处理,比如设置其字体大小,颜色等,用法如下

>>> paragraph = document.add_paragraph("First Paragraph")>>> text = paragraph.add_run('Bold Text')>>> text.bold = True

3. page break

page break表示分页,通过add_page_break方法进行添加,用法如下

>>> document.add_page_break()

4. table

table表示表格,通过add_table函数进行添加,用法如下

>>> table = document.add_table(rows=2, cols=2)

创建表格之后,我们需要对单元格进行赋值, 有以下两种方法

# cell函数获取对应的单元格>>> cell = table.cell(0, 0)>>> cell.text = "cell">>> table.row[0].cells[0].text# 通过rows和cells的结合获取对应的单元格>>> table.rows[0].cells[0].text'cell'

对于一个table, 可以通过如下方式进行遍历

>>> for row in table.rows:... for cell in row.cells:... print(cell.text)

5, picture

picture表示图片,通过add_picture函数进行添加,用法如下

>>> document.add_picture('imae.png')

对于word文档而言,除了基本元素之外,还有一个重大元素就是样式。对于字体的大小,颜色,间隔等等各种样式进行设置,从而呈现出一个美观的排版效果,这是word和普通的文本编辑器最大的不同之处。

在python-docx模块中,内置了可以用于段落,表格,文字的各种style, 详细列表见如下链接

​​type等属性,通过如下方式可以访问具体的style

# 遍历所有的内置styles>>> for i in document.styles:... print(i.name)...# 用字典的方式访问style, key为style的名字>>> document.styles['Normal']_ParagraphStyle('Normal') id: 60660368>>> document.styles['Colorful Grid Accent 6']_TableStyle('Colorful Grid Accent 6') id: 60660440>>> document.styles['Medium Grid 3']_TableStyle('Medium Grid 3') id: 60660368>>> document.styles['Strong']

以段落为例,应用style的用法如下

# 一步法>>> paragraph = document.add_paragraph("Fisrt Paragraph", style="Normal")>>> paragraph = document.add_paragraph("Fisrt Paragraph", style=document.styles['Normal'])# 两步法>>> paragraph = document.add_paragraph("Fisrt Paragraph")>>> paragraph.style = "Normal"

style是针对特定元素排版的一整套规则,包含了很多的样式,对于单个属性的设置,通过style就太厚重了,此时可以使用特定的属性来设置。

python-docx将常用的一些属性设置成了内置的常量,保存在docx.enum模块中,比如设置段落对齐方式为居中对齐,用法如下

>>> from docx.enum.text import WD_ALIGN_PARAGRAPH>>> paragraph = document.add_paragraph()>>> paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER

完整的内置常量可以参考官方的API文档,对word文档编辑之后,可以如下方式另存为新的文档

>>> document.save('out.docx')

python-docx提供了一种跨平台的word自动化处理功能,对于简单排版的word处理,非常的好用。

·end·

—如果喜欢,快分享给你的朋友们吧—

关注我们,解锁更多精彩内容!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:使用python自动化发送邮件(python定时发送邮箱)
下一篇:java字符串反转的7种方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~