python-word添加标题,段落,文字块

news/2024/9/18 20:54:24/ 标签: word

安装与使用python-docx
        要使用必须先安装,要安装python-docx还是在Pycharm的终端(Terminal)中输入pip install
python-docx,如下所示(Successfully installed)便是表示安装成功了。

新建与保存word

python-docx模块已经安装好了,我们直接利用它新建一个全新的word文档,直接上代码:

from docx import Document
document = Document() #创建一个空文档
document.save(r'D:\自动化\word\道德经.docx') # 保存文件

        运行后,在 D:\自动化\word 日录下就多出了一个道德经,docx 文档了。因为只是创建了一个空文档所以打开里面什么也没有,是空白的。
        代码很简单,首先导入docx库,这里需要注意一点,虽然我们安装的是python-docx模块,但是使用时是导入的docx,从代码中第一行可以看出。
        第二行就是新建-个Document。
        第三行则是将新建的Document保存到D:\自动化\word\道德经,docx。

写入Word
我们通过代码打开刚才创建的道德经.docx 来插入一些数据看看,上代码:

from docx import Document
from docx.shared import Inches, Cmdocument = Document() #创建一个空文档
document.save(r'D:\自动化\word\道德经.docx') # 保存文件# 打开一个document
file_path = r'D:\自动化\word\道德经.docx'
document = Document(file_path)#设置标题段落
document.add_heading('道德经',0)#添加段落
p =document.add_paragraph('道可道,非常道:名可名非常名。')
p.add_run('无名,天地之始,').bold=True#在指定段落后添加粗体文字
p.add_run('有名')#在制定段落后添加默认格式文字
p.add_run('万物之母。').italic=True#在指定段落后添加斜体文字#添加1级标题=标题1
document.add_heading('故常无欲',level=1)
# 添加指定格式段落 style后面则是样式
document.add_paragraph('以观其妙,', style='Intense Quote')
# 添加段落,样式为List Bullet类型
document.add_paragraph('常有欲,以观其徼。', style='List Bullet')
# 添加段落,样式为List Number类型
document.add_paragraph('此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。', style='List Number')
document.add_paragraph('所以说,buff老师教Python,教得妙。', style='List Number')# 添加图片
img_path = r'D:\自动化\word\girl.png'
document.add_picture(img_path)
document.add_picture(img_path, width=Inches(1.25))
document.add_picture(img_path, width=Cm(5), height=Cm(5))# 待添加到表格的内容
records = [(1, '李白', '诗仙'),(2, '杜甫', '诗圣'),(3, '白居易', '香山居士, 与元稹并称元白, 与刘禹锡合称刘白')
]
# 添加一个1行3列的表格, 表格样式为Table Grid
# 表格样式参数可选,缺省时为Normal Table
# Normal Table
# Table Grid
# Light Shading、 Light Shading Accent 1 至 Light Shading Accent 6
# Light List、Light List Accent 1 至 Light List Accent 6
# Light Grid、Light Grid Accent 1 至 Light Grid Accent 6
# 太多了其它省略...
table = document.add_table(rows=1, cols=3, style='Table Grid')# 填充标题行
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '序号'
hdr_cells[1].text = '姓名'
hdr_cells[2].text = '描述'# 动态添加数据行
for id, name, desc in records:row_cells = table.add_row().cellsrow_cells[0].text = str(id)row_cells[1].text = namerow_cells[2].text = desc
document.add_paragraph('再添加一个表格')# 待添加到表格的内容
records2 = [["姓名", "性别", "家庭地址"],["貂蝉", "女", "河北省"],["杨贵妃", "女", "贵州省"],["西施", "女", "山东省"]
]# 添加一个4行3列的表格
table2 = document.add_table(rows=4, cols=3, style='Light List Accent 5')# 填充表格
for 行索引 in range(4):cells = table2.rows[行索引].cellsfor 列索引 in range(3):cells[列索引].text = str(records2[行索引][列索引])# 添加分页符
document.add_page_break()# 保存文档
document.save(r'D:\自动化\word\道德经.docx')

添加标题
level等级1-9 也就是标题1-标题9,我们可以在旧文档中将标题格式设置好,使用Python-docx打开旧文档,再添加相应等级标题即可。

document.add_heading('一级标题', level=1)

添加段落
段落在 Word 中是基本内容。它们用于正文文本,也用于标题和项目列表(如项目符号)。
添加段落的时候,赋值给一个变量,方便我们后面进行格式调整。

p = document.add_paragraph('道可道,非常道;名可名,非常名。')
# 添加指定格式段落 style后面则是样式
document.add_paragraph('以观其妙,', style='Intense Quote')

添加文字块
在指定段落上添加文字块。

p.add_run('无名,天地之始,').bold = True # 在指定段落后添加粗体文字
p.add_run('有名,') # 在指定段落后添加默认格式文字
p.add_run('万物之母。').italic = True # 在指定段落后添加斜体文字

添加图片
width, height可用于设置图片尺寸,缺省时为图片默认大小。

document.add_picture('girl.png')
document.add_picture('girl.png', width=Inches(1.25))
document.add_picture('girl.png', width=Cm(5), height=Cm(5))

# 添加一个4行3列的表格
table = document.add_table(rows=4, cols=3)
table = document.add_table(rows=4, cols=3, style='Light Shading Accent 2')

添加分页符

# 添加分页符
document.add page break()

读取Word
学习如何写入Word,我们继续学习下如何读取Word中的文字数据与表格数据。上代码:

from docx import Document
doc = Document(r'D:\自动化\word\道德经.docx')#读取word中所有内容for p in doc.paragraphs:print(p, p.text)# 读取指定段落中的所有run
for run in doc.paragraphs[1].runs:print(run, run.text)# 读取 word中所有表格内容
for 表格 in doc.tables:print(表格)for 行 in 表格.rows:for 单元格 in 行.cells:print(单元格.text)
doc.save(r'D:\自动化\word\另存为新文档.docx')


http://www.ppmy.cn/news/1518807.html

相关文章

【Python基础】字符串类型

本文收录于 《Python编程入门》专栏,从零基础开始,分享一些Python编程基础知识,欢迎关注,谢谢! 文章目录 一、前言二、Python 字符串类型2.1 Python访问字符串中的值2.2 Python 转义字符2.3 Python 字符串运算符2.4 Py…

并发服务器

一、服务器 1.单循环服务器:同一时刻,只能处理一个客户端的任务; 2.并发服务器:同一时刻,可以处理多个客户端的任务; 3.TCP并发服务器: (1)多进程: (2&a…

为什么搜索引擎可以检索到网站?

搜索引擎和爬虫,基于百度举例 为什么搜索引擎可以快速检索到所有对应页面? 搜索引擎能够快速检索到所有对应页面,主要归功于以下几个方面: 爬虫技术:自动遍历互联网上的网页。索引:将爬取的网页内容转换…

游戏出海,燃动全球,“安全”如何通关?

泼天的富贵落在了游戏圈,用事实打脸了男人消费不如狗的谬论。 这几天,无论是游戏圈内人还是圈外人,无人不知晓《黑神话:悟空》。这部头顶「3A国产游戏之光」的作品自6月8日预售以来,全平台销量超过800万份,…

【自动驾驶】控制算法(六)前馈控制与航向误差

写在前面: 🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝 个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。 🔍 本文系 清流君 原创之作&…

【最新华为OD机试E卷】空栈压数(200分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

【机器学习】10. 朴素贝叶斯

贝叶斯理论 P ( H ∣ E ) P ( E ∣ H ) P ( H ) P ( E ) P(H|E) \frac{P(E|H)P(H)}{P(E)} P(H∣E)P(E)P(E∣H)P(H)​ 两个假设: 类别之间相互独立每个类别同等重要 P(E1 | yes) E1 个数 / yes 个数 0 频率问题 上述理论会遇到某个类别为0的情况,导致…

【Qt应用】Qt编写简易文件管理系统

目录 引言 一、准备工作 二、设计思路 三、创建项目和基本界面 四、目录浏览功能 实现效果 五、文件操作功能 5.1 设置添加文件与删除文件按钮 5.2 添加文件槽函数 5.3 删除文件槽函数 5.4 实现效果 六、文件搜索功能 6.1 准备工作 6.2 搜索按钮槽函数 6.3 实现…

Java中的注解(Annotation)

Java中的注解(Annotation)是一种用于在代码中添加元数据的机制。它们可以被用来为类、方法、变量、参数等元素添加额外的信息,这些信息在编译时或运行时可以被读取和使用。注解本身不会直接影响代码的执行,但可以通过反射等机制在…

汽车三元浸出液回收钯铑

汽车三元催化器是减少汽车尾气排放的关键部件,它含有铂、钯、铑等贵金属。这些金属在汽车尾气净化过程中起着重要作用,但使用一段时间后会因中毒、烧结等原因而失活。回收这些贵金属不仅可以减少环境污染,还能节约宝贵的资源。以下是汽车三元…

使用C标准库中的printf输出

1、增加文件系统调用 对系统调用进行了调整,一是将所有的系统调用实现转移 从头文件转移到C文件中; 二是增加几个有关文件打开和关闭的接口 主要是将系统调用做成单独的app库,这个库可以供其它所有的应用程序使用 2、导入newlib库&#xff…

CleanClip for Mac v2.2.0 剪贴板历史管理软件正式激活版

CleanClip 是一款专为 Mac 用户设计的强大剪贴板历史管理工具。它能够自动保存您复制的内容,让您轻松访问和管理剪贴板历史记录,大大提高工作效率。 下载地址:CleanClip for Mac v2.2.0 剪贴板历史管理软件正式激活版 主要特点 自动保存剪贴板历史 CleanClip 会自…

基于麻雀SSA优化BP神经网络多输入多输出的数据回归预测Matlab程序SSA-BP 含预测新数据程序

基于麻雀SSA优化BP神经网络多输入多输出的数据回归预测Matlab程序SSA-BP 含预测新数据程序 文章目录 一、基本原理1. SSA(麻雀搜索算法)2. BP(反向传播神经网络)3. SSA-BP回归预测的整合 二、实验结果三、核心代码四、代码获取五、…

disk manager操作教程 如何使用Disk Manager组件 Mac如何打开ntfs格式文件

macOS系统有一个特别明显的弱点,即不能对NTFS格式磁盘写入数据。想要适合Mac系统使用来回转换磁盘格式又十分麻烦,这该怎么办呢?Tuxera ntfs for mac作为一款Mac完全读写软件,大家在安装该软件后,能充分使用它的磁盘管…

python自动化脚本:让工作自动化起来

Python是一种流行的编程语言,以其简洁和易读性而闻名。它提供了大量的库和模块,使其成为自动化各种任务的绝佳选择。 我们将探讨9个Python脚本及其代码,可以帮助您自动化各种任务并提高工作效率。无论您是开发人员、数据分析师还是只是想简化…

跨境多账号登录如何防止IP、cookie和设备关联?

在当今数字化时代,拥有某个平台的多个账号是必要的,但如何防止这些账号之间产生关联,进而导致封号,却是一个需要谨慎对待的问题。 一、 多账号关联的主要因素 1. IP地址 2. Cookie和缓存 3. 设备指纹 二、如何防关联&#xff…

Vue——认识day06_class与style绑定

在Vue中,可以使用v-bind指令来将CSS样式动态地绑定到HTML元素上。有两种方式可以实现CSS与style的绑定: 对象语法:可以将一个包含CSS属性和值的对象传递给v-bind,将对象的属性与HTML元素的style属性进行绑定。例如: …

20.神经网络 - 搭建小实战和 Sequential 的使用

神经网络 - 搭建小实战和 Sequential 的使用 在 PyTorch 中,Sequential 是一个容器(container)类,用于构建神经网络模型。它允许你按顺序(sequential)添加不同的网络层,并将它们串联在一起&…

手机FM LNA方案设计

一 概述 关于手机FM的使用,较为传统的则是在打开FM应用前先插入有线耳机才能使用FM应用。然而随着智能手机的进步以及有线耳机日益被无线蓝牙耳机所代替,内置FM LNA方案被应用的越来越多,无需插入有线耳机,复用例如GSM天线也能实…

JavaScript初级——键盘事件

1、 onkeydown —— 按键被按下 —— 如果一直按着某个键不松手,则事件会一直触发 —— 连续触发时,第一次和第二次之间会间隔稍微长一点,其他的会非常的快,这种设计是为了放置误操作的发生 2、 onkeyup —— 按键被松…