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

news2024/11/15 2:14:11

安装与使用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, Cm


document = 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().cells
    row_cells[0].text = str(id)
    row_cells[1].text = name
    row_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[行索引].cells
    for 列索引 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.coloradmin.cn/o/2092461.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unclutter - 苹果电脑(Mac)桌面文件笔记剪贴板管理工具

刚收拾好的电脑桌面马上又堆满了杂七杂八的文件?刚随手一记的笔记,回头却找不到了? 马上来认识一下 Unclutter,一款藏在 Mac 系统顶部的文件、笔记、剪贴板管理器。 安装后,用户只需要将鼠标指针移动到屏幕顶部&…

2024-2025-1秋学期课程任务和班课号

课表: ROS机器人程序设计 班课号:9074941 以ROS2 Jazzy为主题,以下是极简版本的《ROS机器人程序设计》教学进度表: 教学进度表 课程名称:ROS2 Jazzy程序设计 总学时:48学时(讲课32学时&am…

ssrf进阶绕过思路与特殊玩法汇总

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文整理ssrf的绕过思路 本文随我的阅历实时更新 内容包含我搜集到的以及自创的绕过方法 挖掘判断 无回显判断是否访问URL 自己服务器上安装个python 启动监听服务 python -m http.server 有人访问之后就会留…

自建一款开源音乐服务-Navidrome

自建一款开源音乐服务-Navidrome Navidrome,一个开源的音乐服务器和播放器,提供了一个优雅且功能丰富的解决方案,让你的音乐库无论在何处都能触手可及。本文将带你一步步搭建自己的Navidrome音乐服务器,让你的音乐生活更加自由和…

【Windows学习笔记】1:OneCore和Windows API

1 OneCore 主流Windows跑在PC上,Xbox跑的是从Windows 2000分支出来的版本,Windows Phone跑的是基于Windows CE(实时操作系统)的版本。 为了维护和扩展这些code方便,微软将kernels和base platform集成在一起叫OneCore…

Python中如何import文件?

背景 我在一个语言大模型项目中,多个地方要使用API,这涉及到API密钥的设置,关键我想把项目开源出来,用户设置为自己密钥的时候想提供方便,仅修改一个文件即可,这样会提供方便。于是有了下面的探索 问题 目…

2024年“羊城杯”粤港澳大湾区网络安全大赛 AI部分

2024年“羊城杯”粤港澳大湾区网络安全大赛 AI部分 Author:Ns100kUp From:极安云科-服务中心 Data:2024/08/27 Copyright:本内容版权归属极安云科,未经授权不得以任何形式复制、转载、摘编和使用。培训、环境、资料、考证 公众号…

[QCTF2018]X-man-A face1

下载解压后发现一张缺失左上和左下的二维码,先补齐,扫扫看,请ps 在ps中打开我们需要把右上的回型图案复制,分别黏贴到左上和左下正确位置 先按W键调出魔术棒工具,我的容差已调好,不需要再调试,…

VS Code 一些好用的扩展插件

目录 1.改中文 2.不同注释色 3.显示Color颜色 4.显示尾部空格 5.快捷提示 6.调出颜色面板 7.git 提交记录 8.本地修改记录 9.文件比较 10.Post请求测试 11.实时显示代码的运行结果 12.自动修改标签名 13.在选中代码两边添加各种引号、括号 14.自动添加console.log…

BRAS(宽带接入服务器)简介

文章目录 BRAS的主要功能IP地址分配功能AAA(认证、计费、授权) BRAS的工作流程PPPoE(基于以太网的点对点通讯协议)vBRAS(虚拟宽带远程接入服务器) 宽带接入服务器(Broadband Remote Access Serv…

【奇某信-注册_登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

23种设计模式之模版方法模式

文章目录 模版方法模式简单实现 - 炒菜**总结** 模版方法模式 一、定义与概念 模板方法模式是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。…

中智科学技术评价研究中心与中企数研究院实现全面合作

8月29日,中智科学技术评价研究中心与《中国企业报》集团数字化发展研究院在北京顺喜山庄成功举办“数字经济GBC生态系统管理平台”项目实施落地座谈会及研究院高层管理集训班,并签署了项目合作协议。此次合作标志着双方将在“数字中国发展战略”的大背景…

录屏神器Camtasia 2024中文永久激活版安装教程+汉化补丁 破解版激活码

它来了它来了,它带着Camtasia2024最新版来了! 录屏&剪辑软件 Camtasia 如期发布最新版,带来的新功能非常实用!我们今天带来的是Camtasia Studio 2024最新版,附带crack破解程序(注册机)和激…

基于yolov8的篮球计数检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的篮球计数检测系统是一种高效、精准的目标检测技术,专为篮球比赛中的篮球计数而设计。该系统利用YOLOv8这一先进的深度学习算法,通过实时分析比赛视频或图像,能够迅速且准确地识别并计数篮球的数量。 YOLOv8作为YO…

【系统架构设计师-2014年】综合知识-答案及详解

文章目录 【第1~2题】【第3~4题】【第5题】【第6~8题】【第9题】【第10~11题】【第12题】【第13题】【第14题】【第15题】【第16~17题】【第18题】【第19~21题】【第22~23题】【第24题】【第25题】【第26题】【第27~28题】【第29题】【第30题】【第31题】【第32题】【第33~34题…

《高等代数》范德蒙德行列式的应用

说明:此文章用于本人复习巩固,如果也能帮助到大家那就更加有意义了。 注:范德蒙德行列式的简单应用及其变形。 范德蒙德行列式的计算公式: 注:(1)用大下标减去小下标。 (2&#xf…

深入理解并实现——归并排序【C语言】

目录 一、概念 二、递归版实现 三、非递归实现 三、文件归并排序 小结 一、概念 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将…

【论文阅读】Single-Stage Visual Query Localization in Egocentric Videos

paper: code: 简介: 长篇自我中心视频的视觉查询定位需要时空搜索和指定对象的定位。之前的工作开发了复杂的多级管道,利用完善的对象检测和跟踪方法来执行 VQL(视觉查询定位)。然而,每个阶段…

智能创作与优化新时代:【ChatGPT-4o】在【数学建模】、【AI绘画】、【海报设计】与【论文优化】中的创新应用

目录 1. 引言 什么是ChatGPT4o? 背景与发展历史 2.chatgpt4o数学建模 常见的数学建模专业术语及其简要说明 一个具体的代码例子 问题描述 代码实现 代码说明 运行结果 3.chatgpt4o在论文 1.例如生成基于标签的推荐系统模型及算法研究 1. 摘要 2. 引…