Python操作word文档的示例分析

发布时间:2022-01-20 13:36:58 作者:kk
来源:亿速云 阅读:196

Python操作word文档的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

写在前面

python-docx 不支持 doc 文档,一定要注意该点,如果使用 doc 文档,需要提前将其用 Word 相关软件转换为 docx 格式。 doc 和 docx 是存在本质差异的,一个是二进制,另一个 XML 格式的文件。

模块的安装 pip install python-docx

以下网址首先准备好

资料准备完毕,即可进入编码环节。

创建一个文档

第一个需求,创建一个文档,并在里面写入各种信息。

先实现第一步,写入一个标题

注意下文中的 add_heading() 函数的用法。

from docx import Document

# 创建 Document 对象,等价于在电脑上打开一个 Word 文档
document = Document()

# 在 Word 文档中添加一个标题
document.add_heading('这是一个标题',level=0)

# 保存文档
document.save('demo.docx')

添加文字段落

注意下文中 add_paragraph() 函数添加段落,使用 add_run() 追加文本

from docx import Document

# 创建 Document 对象,等价于在电脑上打开一个 Word 文档
document = Document()

# 在 Word 文档中添加一个标题
document.add_heading('这是一个标题', level=0)

# 文档添加段落
p = document.add_paragraph('这是白给的段落')
# 添加带样式的文字
# 添加段落,文本可以包含制表符(\t)、换行符(\n)或回车符(\r)等
# add_run() 在段落后面追加文本
p.add_run('\n我倾斜了').italic = True  # 添加一个倾斜文字
p.add_run('\n我加粗了').bold = True  # 添加一个加粗文字

# 保存文档
document.save('demo.docx')

在段落前面增加文字

p.add_run('\n我倾斜了').italic = True  # 添加一个倾斜文字
p.add_run('\n我加粗了').bold = True  # 添加一个加粗文字

# 段落前面插入内容
prep_p = p.insert_paragraph_before('段落之前插入内容')

段落还可以添加分页符,代码如下所示:

# 段落前面插入内容
prep_p = p.insert_paragraph_before('段落之前插入内容')

document.add_page_break()
p1 = document.add_paragraph('新页新段落')

Python操作word文档的示例分析

列表的添加

无序列表的添加

# 添加列表(前面一个小圆点)
document.add_paragraph('我前面是小圆点', style='List Bullet')
# 添加列表(前面一个小圆点)
document.add_paragraph('第二个小圆点', style='List Bullet')

有序列表的添加

# 添加列表(前面数字)
document.add_paragraph('我前面是数字', style='List Number')
# 添加列表(前面数字)
document.add_paragraph('第二个数字', style='List Number')

图片的添加

Document 对象具备的方法如下所示:

本部分重点学习 add_picture() 方法。

document.add_picture(r"../9.png", width=Inches(1))

add_picture() 函数中参数 image_path_or_stream 可以为相对地址或者绝对地址,也可以是一个图片数据流,上述代码中 Inches 表示英寸,除此之外, python-docx 还提供了厘米 (Cm) ,如设置 1厘米: Cm(1) ,使用的时候需要提前导入 from docx.shared import Inches, Cm

表格添加

使用 add_table() 函数,可以在 Word 文档中添加表格。

p1 = document.add_paragraph('新页新段落')

# 添加一个 2×2 表格
table = document.add_table(rows=2, cols=2)
# 获取第1行第2列单元格
cell = table.cell(0, 1)

# 设置单元格文本
cell.text = '第1行第2列'

# 获取第2行
row = table.rows[1]
row.cells[0].text = '橡皮擦'
row.cells[1].text = '乔喻'

学习的时候注意一下相关注释,即可掌握该部分内容。

相关样式设置

设置格式需要用 add_run() ,直接使用 add_paragraph() 生成的段落不能直接设置字体等样式。

# 模块的导入
from docx.shared import Pt, Cm, Inches
from docx.oxml.ns import qn
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import RGBColor
# 一级标题 level=0
head0 = document.add_heading(level=0)
# 标题居中
head0.alignment = WD_ALIGN_PARAGRAPH.CENTER
title_run = head0.add_run('这是一个居中的标题', )
title_run.font.size = Pt(24)
# 标题英文字体
title_run.font.name = 'Times New Roman'
# 标题中文字体
title_run.element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
# 字体颜色
title_run.font.color.rgb = RGBColor(4, 60, 169)

其中 WD_ALIGN_PARAGRAPH 对象表示段落对其的方式,其值包括如下内容

行距,段间距 line_spacing 属性用来设置行距, space_before 表示段前距, space_after 表示段后距。

斜体,下划线,粗体设置

font.italic = True  #设置斜体
font.underline = True  #设置下划线
font.bold = True  #设置粗体

首行缩进 paragraph_format_line_indent 可以设置缩进值。

其它设置 除了上述内容外,还可以通过 document.styles.add_style('textstyle', WD_STYLE_TYPE. PARAGRAPH) ,使用 add_style() 方法创建新的样式对象,后续就可以通过提供的属性进行样式设置,设置字体使用 font.size ,设置字体颜色为 font.color

然后在添加段落的时候,就可以应用该属性了。

from docx.shared import RGBColor
from docx.enum.style import WD_STYLE_TYPE
style = document.styles.add_style('textstyle', WD_STYLE_TYPE.PARAGRAPH)
# 字体大小
style.font.size = Pt(16)
# 字体颜色
style.font.color.rgb = RGBColor(66, 100, 0)
p1 = document.add_paragraph('神人橡皮擦',style=style)

页眉和页脚

页眉和页脚可以直接设置,参考代码如下所示

header = document.sections[0].header
header.add_paragraph('橡皮擦的页眉')

页脚设置

footer = document.sections[0].footer

python主要应用领域有哪些

1、云计算,典型应用OpenStack。2、WEB前端开发,众多大型网站均为Python开发。3.人工智能应用,基于大数据分析和深度学习而发展出来的人工智能本质上已经无法离开python。4、系统运维工程项目,自动化运维的标配就是python+Django/flask。5、金融理财分析,量化交易,金融分析。6、大数据分析。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。

推荐阅读:
  1. XML文档基本操作的示例分析
  2. Elasticsearch索引和文档操作的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python word

上一篇:css中如何将内联元素转换为块元素

下一篇:XHTML与HTML的区别是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》