java中的接口是类吗
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~