10个Word自动化办公脚本
在日常工作和学习中,我们常常需要处理Word文档(.docx)。
Python提供了强大的库,如python-docx,使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本,帮助新手小白更好地上手。
1. 创建一个新的Word文档
from docx import Document# 创建新的Word文档并添加标题
def create_new_document(file_name, title):doc = Document()doc.add_heading(title, level=1)doc.save(file_name)create_new_document('example.docx', '我的新文档')
print("新文档已创建!")
解释
该脚本创建一个新的Word文档,并在其中添加一个标题。这是任何处理文档时的第一步,对程序员来说,这样可以快速生成报告框架;对于普通用户,比如需要创建新的会议记录或笔记,这会非常方便。
2. 向文档中添加段落
# 向已有的Word文档中添加段落
def add_paragraph_to_document(file_name, paragraph_text):doc = Document(file_name)doc.add_paragraph(paragraph_text)doc.save(file_name)add_paragraph_to_document('example.docx', '这是我添加的新段落。')
print("段落已添加到文档中!")
解释
这个脚本向指定的Word文档中添加一个新段落。在撰写报告或文章时,随着内容的增加,需要不断往文件中添加信息,使用这个脚本可以高效地更新文档。
3. 修改文档中的文本
# 修改文档中特定段落的内容
def replace_paragraph_in_document(file_name, old_text, new_text):doc = Document(file_name)for para in doc.paragraphs:if old_text in para.text:para.text = para.text.replace(old_text, new_text)doc.save(file_name)replace_paragraph_in_document('example.docx', '新段落', '替换后的段落')
print("段落已成功修改!")
解释
该脚本查找并替换Word文档中特定的段落内容。比如,当在编辑过程中发现某些信息需要更新时,通过此脚本可以快速完成修改,避免手动逐一查找的烦恼。
4. 删除特定段落
# 删除文档中包含特定文本的段落
def delete_paragraph_in_document(file_name, text_to_delete):doc = Document(file_name)for para in doc.paragraphs:if text_to_delete in para.text:p = para._elementp.getparent().remove(p)doc.save(file_name)delete_paragraph_in_document('example.docx', '替换后的段落')
print("特定段落已删除!")
解释
这个脚本删除Word文档中包含特定文本的段落。例如,在审阅文档时可能发现某些不准确的信息,希望将其删除,使用这个脚本可以快速实现。
5. 添加列表和表格
# 向文档中添加有序列表和表格
def add_list_and_table(file_name):doc = Document(file_name)# 添加有序列表doc.add_paragraph('这是一个有序列表:', style='ListNumber')for i in range(1, 4):doc.add_paragraph(f'项目 {i}', style='ListNumber')# 添加表格table = doc.add_table(rows=3, cols=3)for row in table.rows:for cell in row.cells:cell.text = '单元格内容'doc.save(file_name)add_list_and_table('example.docx')
print("有序列表和表格已成功添加!")
解释
该脚本向Word文档中添加一个有序列表和一个简单的表格。通过这种方式,可以清晰地组织信息,适用于需要展示数据或计划的场合。
6. 格式化文本
from docx.shared import Pt# 设置文档中文本的格式
def format_text(file_name):doc = Document(file_name)for para in doc.paragraphs:for run in para.runs:run.font.size = Pt(14) # 设置字体大小为14ptrun.bold = True # 设置为加粗doc.save(file_name)format_text('example.docx')
print("文档中的文本格式已成功修改!")
解释
该脚本修改文档中所有文本的格式,例如设置字体大小和加粗。这在制作正式报告时尤为重要,有助于提升文档的可读性和美观度。
7. 合并多个Word文档
# 合并多个Word文档为一个
def merge_documents(output_file, *input_files):merged_doc = Document()for file in input_files:sub_doc = Document(file)for element in sub_doc.element.body:merged_doc.element.body.append(element)merged_doc.save(output_file)merge_documents('merged_example.docx', 'doc1.docx', 'doc2.docx')
print("多个文档已成功合并!")
解释
该脚本将多个Word文档合并为一个新文档。这在需要汇总不同来源的报告时特别有用,可以减少繁琐的复制粘贴过程。
8. 插入图片
# 在文档中插入图片
def insert_image_into_document(file_name, image_path):doc = Document(file_name)doc.add_picture(image_path, width=None) # 可以设置width参数doc.save(file_name)insert_image_into_document('example.docx', 'image.png')
print("图片已成功插入文档中!")
解释
这个脚本将指定的图片插入到Word文档中。在撰写报告或制作演示文稿时,图像可以有效增强信息传达,使用这个功能可以快速丰富文档内容。
9. 提取文档文本
# 提取Word文档中的所有文本
def extract_text_from_document(file_name):doc = Document(file_name)text = []for para in doc.paragraphs:text.append(para.text)return '\n'.join(text)extracted_text = extract_text_from_document('example.docx')
print("提取的文本内容如下:")
print(extracted_text)
解释
该脚本提取Word文档中的所有文本内容并打印出来。这在需要分析或总结文件内容时非常有用,尤其是在从大量文档中提取关键数据时。
10. 保存文档副本
# 保存Word文档的副本
def save_document_copy(original_file, copy_file):doc = Document(original_file)doc.save(copy_file)save_document_copy('example.docx', 'copy_of_example.docx')
print("文档副本已成功保存!")
解释
此脚本保存Word文档的副本,便于备份和版本控制。在处理重要文件时,定期保存副本是保护数据的重要措施,特别是在进行大规模修改之前。
以上就是10个实用的Python Word自动化脚本示例,希望能够帮助你在Word文档处理和自动化方面提高效率!
通过这些简单的示例,你可以看到Python在处理Word文档中的强大功能,同时也希望能激发你深入探索的兴趣。如果你有任何问题或想法,欢迎随时交流!
全套Python学习资料分享:
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
三、python入门资料大全
四、python进阶资料大全
五、python爬虫专栏
六、入门学习视频全套
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
七、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
八、python最新面试题
相关文章:

10个Word自动化办公脚本
在日常工作和学习中,我们常常需要处理Word文档(.docx)。 Python提供了强大的库,如python-docx,使我们能够轻松地进行文档创建、编辑和格式化等操作。本文将分享10个使用Python编写的Word自动化脚本,帮助新…...
Paddle Inference部署推理(十八)
十八:Paddle Inference推理 (C)API详解 3. 使用 CPU 进行预测 注意: 在 CPU 型号允许的情况下,进行预测库下载或编译试尽量使用带 AVX 和 MKL 的版本 可以尝试使用 Intel 的 MKLDNN 进行 CPU 预测加速,默…...
Redis开发02:redis.windows-service.conf 默认配置文件解析与注解
文件位置:redis安装目录下的 redis.windows-service.conf ,存放了redis服务的相关配置,下面列举出默认配置的含义: 配置项含义bind 127.0.0.1限制 Redis 只监听本地回环地址,意味着只能从本地连接 Redis。protected-m…...

redis大key和热key
redis中大key、热key 什么是大key大key可能产生的原因大key可能会造成什么影响如何检测大key如何优化删除大key时可能的问题删除大key的策略 热key热key可能导致的问题解决热key的方法 什么是大key 大key通常是指占用内存空间过大或包含大量元素的键值对。 数据量大ÿ…...
Dubbo 最基础的 RPC 应用(使用 ZooKeeper)
看国内的一些项目时 Dubbo 这个词经常闪现,一直也不以为然,未作搜索,当然也不知道它是做什么用的。直到最近阅读关于大型网站架构相关的书中反复提到 Dubbo 后,觉得不能再对它视而不见。Google 了一下,它是在阿里巴巴创…...

科技赋能:企业如何通过新技术提升竞争力的策略与实践
引言 在当今瞬息万变的商业环境中,科技的迅猛发展正在重新定义行业的游戏规则。无论是小型企业还是跨国巨头,都感受到数字化转型的迫切需求。过去,企业竞争力更多依赖于成本控制、资源调配或市场覆盖,而如今,新技术的引…...

从0开始深度学习(33)——循环神经网络的简洁实现
本章使用Pytorch的API实现RNN上的语言模型训练 0 导入库 import torch import torch.nn as nn import torch.nn.functional as F from torch.utils.data import Dataset, DataLoader from collections import Counter import re import math from tqdm import tqdm1 准备数据 …...
【FAQ】HarmonyOS SDK 闭源开放能力 — 公共模块
1.问题描述: 文档哪里能找到所有的权限查看该权限是用户级的还是系统级的。 解决方案: 您好,可以看一下下方链接是否可以解决问题: https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-all-V…...

百度 文心一言 vs 阿里 通义千问 哪个好?
背景介绍: 在当前的人工智能领域,随着大模型技术的快速发展,市场上涌现出了众多的大规模语言模型。然而,由于缺乏统一且权威的评估标准,很多关于这些模型能力的文章往往基于主观测试或自行设定的排行榜来评价模型性能…...

内网不出网上线cs
一:本地正向代理目标 如下,本地(10.211.55.2)挂好了基于 reGeorg 的 http 正向代理。代理为: Socks5 10.211.55.2 1080python2 reGeorgSocksProxy.py -l 0.0.0.0 -p 1080 -u http://10.211.55.3:8080/shiro/tunnel.jsp 二:虚拟机配置proxifer 我们是…...

ubuntu22开机自动登陆和开机自动运行google浏览器自动打开网页
一、开机自动登陆 1、打开settings->点击Users 重启系统即可自动登陆桌面 二、开机自动运行google浏览器自动打开网页 1、安装google浏览器 sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i ./google-chrome-stable…...
企业建站高性能的内容管理系统
AnQiCMS 是一款高性能的内容管理系统,基于Go语言开发。它支持多站点、多语言管理,提供灵活的内容发布和模板管理功能,同时,系统内置丰富的利于SEO操作的功能,支持包括自定义字段、文档分类、批量导入导出等功能 AnQiC…...

【爬虫框架:feapder,管理系统 feaplat】
github:https://github.com/Boris-code/feapder 爬虫管理系统 feaplat:http://feapder.com/#/feapder_platform/feaplat 爬虫在线工具库 :http://www.spidertools.cn :https://www.kgtools.cn/1、feapder 简介 对于学习 Python…...

faiss库中ivf-sq(ScalarQuantizer,标量量化)代码解读-5
训练过程 通过gdb调试得到这个ivfsq的训练过程,我尝试对这个内容具体训练过程进行解析,对每个调用栈里面的逻辑和代码进行解读。 步骤函数名称调用位置说明1faiss::IndexIVF::train/faiss/IndexIVF.cpp:1143开始训练,判断是否需要训练第一级…...

代码随想录算法训练营第六十天|Day60 图论
Bellman_ford 队列优化算法(又名SPFA) https://www.programmercarl.com/kamacoder/0094.%E5%9F%8E%E5%B8%82%E9%97%B4%E8%B4%A7%E7%89%A9%E8%BF%90%E8%BE%93I-SPFA.html 本题我们来系统讲解 Bellman_ford 队列优化算法 ,也叫SPFA算法…...
在嵌入式Linux下如何用QT开发UI
在嵌入式 Linux 环境下使用 Qt 开发用户界面 (UI) 是一个常见的选择。Qt 提供了丰富的功能、跨平台支持以及优秀的图形界面开发能力,非常适合用于嵌入式系统。以下是开发流程的详细步骤: 1. 准备开发环境 硬件环境 一块运行嵌入式 Linux 的开发板&…...
【JavaScript】Promise详解
Promise 是 JavaScript 中处理异步操作的一种强大机制。它提供了一种更清晰、更可控的方式来处理异步代码,避免了回调地狱(callback hell)和复杂的错误处理。 基本概念 状态: Pending:初始状态,既不是成功…...
1062 Talent and Virtue
About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about peoples talent and virtue. According to his theory, a man being outstanding in both talent and virtue must be a "sage(圣人)"…...

C++《二叉搜索树》
在初阶数据结构中我学习了树基础的概念以及了解了顺序结构的二叉树——堆和链式结构二叉树该如何实现,那么接下来我们将进一步的学习二叉树,在此会先后学习到二叉搜索树、AVL树、红黑树;通过这些的学习将让我们更易于理解后面set、map、哈希等…...
机器学习-神经网络(BP神经网络前向和反向传播推导)
1.1 神经元模型 神经网络(neural networks)方面的研究很早就已出现,今天“神经网络”已是一个相当大的、多学科交叉的学科领域.各相关学科对神经网络的定义多种多样,本书采用目前使用得最广泛的一种,即“神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够…...

装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...

Xshell远程连接Kali(默认 | 私钥)Note版
前言:xshell远程连接,私钥连接和常规默认连接 任务一 开启ssh服务 service ssh status //查看ssh服务状态 service ssh start //开启ssh服务 update-rc.d ssh enable //开启自启动ssh服务 任务二 修改配置文件 vi /etc/ssh/ssh_config //第一…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...