python-docx初探🚀

        在项目中需要用到使用代码来编写一些结构化的文档,所以这里就需要涉及到一些需要用代码写world的一些工作,经过简单了解,python操作world最主要使用的就是python-docx文档,所以这次就先学一下这个库的操作,根据官方文档先简单学一些基础知识初步了解下。


官方文档网址:https://python-docx.readthedocs.io/en/latest/index.html
在这里插入图片描述


1.生成一个空白的world


        首先我发现文档里的教程省略了这一步,也就是在官方文档的教程中默认都是已经自己在外部建好文档,然后进而使用代码读取操作的,在实际操作中我发现,应该还是需要自己动手生成空白文档这一步,才能完整之后想要实现的之后想要自动结构化的操作,生成一个空白文档的代码如下。运行之后会在相对路径下生成一个example.docx的文件夹

from docx import Document

# 实例化doc对象
document = Document()

# 文件路径
file_path = 'example.docx'

# 保存doc文档
document.save(file_path)

运行代码之后会在相对路径下生成一个文档,打开之后是一个空白文档(上面的灰色文字是WPS的AI功能提示,内容还是空白的)
在这里插入图片描述

2.插入一段文字


        写入一段文字需要用到add_paragraph方法,生成一个空白文档插入一段文字,然后保存代码如下,其中paragraph是一个段落返回对象,之后可以通过这个对象完成一系列操作,如果改动段落的一些字体加粗等属性,在该段上下插入新的段落等等,运行之后打开world可以看到在第一行输出了我们指定的一段文字。

from docx import Document

# 实例化doc对象
document = Document()

# 文件路径
file_path = 'example.docx'

paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')

# 保存doc文档
document.save(file_path)

在这里插入图片描述
        add_paragraph的本质是在文档的末尾部分追加一段文字,在官方例程中想在段落前后插入一段文字该如何操作呢?,例如我们要在刚才加入的段落前面插入一段文字。

from docx import Document

# 实例化doc对象
document = Document()

# 文件路径
file_path = 'example.docx'

# 插入一段文字
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')

#在paragraph这段文字的上方再插入一段文字
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')

# 保存doc文档
document.save(file_path)

运行结果如下:
在这里插入图片描述

3.添加一个标题


        python-docx还开放了插入各个级别的标题的API,插入一个标题的代码如下

from docx import Document

# 实例化doc对象
document = Document()

# 文件路径
file_path = 'example.docx'

# 插入一段文字
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')

# 在paragraph这段文字的上方再插入一段文字
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')

# 插入一个标题(默认一级标题)
document.add_heading('The REAL meaning of the universe')

# 插入一个二级标题
# document.add_heading('The role of dolphins', level=2)

# 保存doc文档
document.save(file_path)

在这里插入图片描述

4.换页


        在插入标题和文字之后官方文档中还介绍了换页,也就是如果我们想另启一页的的话,可以使用add_page_break API来进行换页的操作。

from docx import Document

# 实例化doc对象
document = Document()

# 文件路径
file_path = 'example.docx'

# 插入一段文字
paragraph = document.add_paragraph('Lorem ipsum dolor sit amet.')

# 在paragraph这段文字的上方再插入一段文字
prior_paragraph = paragraph.insert_paragraph_before('Lorem ipsum')

# 换页
document.add_page_break()

# 插入一个标题(默认一级标题)
document.add_heading('The REAL meaning of the universe')

# 保存doc文档
document.save(file_path)

在这里插入图片描述

5.插入表格


        出了文字之外还有的就是插入表格,python-docx库有一个table = document.add_table(rows=2, cols=2)的API通过这个API可以插入一个两行两列的表格,默认情况下表格是是无边的,生成表格并在第一行第二列插入一段文字的代码如下。

from docx import Document

# 实例化doc对象
document = Document()

# 文件路径
file_path = 'example.docx'

# 插入一个两行两列的表格
table = document.add_table(rows=2, cols=2)

cell = table.cell(0, 1)
cell.text = 'parrot, possibly dead'


# 保存doc文档
document.save(file_path)

在这里插入图片描述

结束


        实际用下来之后发现还是有不少问题,例如其实想用代码改格式是一个非常麻烦的事情,例如python-docx中甚至无法通过代码来设置表格的边框的颜色,根据Chat-GPT4给我的解释是说,这个python-docx主要关注的是内容,当然还有很多其他的内容可以在文档中查到,总之,python-docx相对来说只适合应用于一些小任务,功能并不强大。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐