当前位置:首页>python>【实用工具】Python 开发 Word 关键字批量查找高亮工具,解放办公效率!

【实用工具】Python 开发 Word 关键字批量查找高亮工具,解放办公效率!

  • 2026-10-21 13:28:47
【实用工具】Python 开发 Word 关键字批量查找高亮工具,解放办公效率!
日常办公中,你是否遇到过这样的场景:需要从成百上千个 Word 文档里查找指定关键字(比如合同、财务报表、报销单),还要手动高亮标注出来?手动逐个处理不仅效率低下,还容易遗漏,简直是 “重复劳动天花板”。
今天给大家分享一款基于 Python+PyQt5 开发的Word 关键字自动查找高亮工具,支持批量处理 doc/docx 文件、自定义高亮样式、保留原目录结构,彻底解放双手,让办公效率翻倍!

一、工具核心功能

这款工具专为办公场景设计,解决了批量 Word 文档关键字查找标注的核心痛点,主要功能如下:

1. 全量递归查找

支持指定根目录,自动遍历所有子目录下的.doc/.docx文件,无需手动选择单个文件,覆盖无死角。

2. 多关键字批量处理

多个关键字用逗号分隔(如:财务报表,报销单,合同),一次配置即可批量查找并高亮所有关键字,支持中英文混合查找。

3. 自定义高亮样式

可自由设置高亮关键字的字体(如微软雅黑、宋体)、字号、粗体 / 斜体、字体颜色,搭配黄色背景高亮,视觉更醒目:
字体颜色自定义(默认红色)
支持粗体、斜体强化显示
字号 8-24 号自由调整

4. 保留原目录结构

处理后的文件会按照源文件的目录层级保存到指定结果目录,方便后续整理和查阅,不会打乱文件结构。

5. 跨平台兼容(差异化支持)

.docx文件:Windows/Mac/Linux 全平台支持
.doc文件:仅 Windows 平台支持(依赖 pywin32)

6. 友好的可视化操作

基于 PyQt5 开发的图形界面,无需编写代码,小白也能轻松上手:
实时进度条显示处理进度
运行日志全程记录,出错可追溯
支持中途停止处理,灵活可控

7. 授权管理

支持 CPU 绑定授权、有效期验证,适合企业内部分发使用,避免工具滥用。

二、快速上手教程

. 授权激活

如果工具开启了授权验证,需先完成激活:
打开工具,进入「授权管理」界面
点击「生成授权申请文件」,保存 JSON 文件
将 JSON 文件发送给管理员获取.lic授权文件
点击「导入授权文件」,选择获取到的.lic文件完成激活

2. 工具使用步骤

步骤 1:配置查找目录

进入「智能查找」界面
点击「选择目录」,设置需要查找的根目录(所有子目录都会被遍历)

步骤 2:输入关键字

在关键字输入框中填写需要查找的内容,多个关键字用逗号分隔(如:财务报表,报销单,合同)。

步骤 3:设置高亮样式

点击「设置高亮字体」,在弹窗中配置字体、字号、样式、颜色
配置完成后,界面会显示当前高亮样式摘要,确认无误即可

步骤 4:配置结果目录

点击「选择目录」,设置处理后文件的保存目录(建议选择空目录,避免文件覆盖)。

步骤 5:开始处理

点击「开始查找处理」,工具会自动执行以下操作:
统计待处理的 Word 文件总数
逐个文件查找关键字并高亮
按原目录结构保存到结果目录
实时更新进度条和运行日志
处理完成后会弹出提示,可直接前往结果目录查看处理后的文件。

三、核心技术实现解析

对于想了解技术细节的开发者,这里简单拆解核心实现逻辑:

1. Word 文档处理核心

docx 文件处理:基于python-docx库,遍历段落和表格,重构 Run 对象实现关键字高亮:
python
运行

核心高亮逻辑片段

def _highlight_paragraph(para, keywords, font_name, font_size, bold, italic, color):r, g, b = int(color[1:3], 16), int(color[3:5], 16), int(color[5:7], 16)for keyword in keywords:text = para.textif keyword not in text:continue

重构Run对象,实现关键字样式替换

new_runs = []current_pos = 0while True:pos = text.find(keyword, current_pos)if pos == -1:break

非关键字文本保留原样式

if pos > current_pos:run = para.add_run(text[current_pos:pos])new_runs.append(run)

关键字文本设置高亮样式

highlight_run = para.add_run(keyword)highlight_run.font.name = font_namehighlight_run.font.size = Pt(font_size)highlight_run.font.bold = boldhighlight_run.font.color.rgb = RGBColor(r, g, b)highlight_run.font.highlight_color = WD_COLOR_INDEX.YELLOWnew_runs.append(highlight_run)current_pos = pos + len(keyword)
doc 文件处理:基于pywin32调用 Word COM 接口,通过查找替换功能实现样式修改,兼容老版本 doc 文件。

2. 多线程处理

使用 PyQt5 的QThread子线程处理文件,避免 UI 阻塞,同时实时更新进度和日志:
python
运行
class SearchThread(QThread):progress_update = pyqtSignal(int)进度更新信号log_update = pyqtSignal(str)日志更新信号def run(self):统计文件总数self.total_files = self.count_total_files(self.root_dir)遍历处理文件for entry in os.scandir(self.root_dir):if self.stop_flag:breakif entry.is_file() and Path(entry.name).suffix.lower() in [".doc", ".docx"]:success, msg = self.process_file(entry.path)self.processed_files += 1更新进度progress = int((self.processed_files / self.total_files) * 100)self.progress_update.emit(progress)

3. 路径处理优化

使用pathlib.Path替代传统os.path,简化路径操作,代码更简洁易维护

保留原目录结构复制文件

def copy_with_structure(self, src_file):src_file = Path(src_file)rel_path = src_file.relative_to(self.root_dir)dst_file = self.result_dir / rel_pathdst_file.parent.mkdir(parents=True, exist_ok=True)return dst_file

四、注意事项

处理.doc文件时,需确保 Windows 系统已安装 Microsoft Word,且关闭待处理的 doc 文件(避免占用);非 Windows 系统(Mac/Linux)仅支持.docx文件处理,.doc文件会跳过;处理大量文件时,建议预留足够的磁盘空间,避免因空间不足导致处理失败;关键字区分大小写,如需不区分,可在代码中添加text.lower().find(keyword.lower())逻辑。

五、总结

这款 Word 关键字查找高亮工具完美解决了办公场景中批量文档处理的痛点,既适合普通办公人员快速使用,也适合开发者二次定制(比如增加关键字大小写忽略、批量导出查找结果等功能)。
无论是财务、法务、行政等需要处理大量合同 / 报表的岗位,还是需要批量整理文档的场景,这款工具都能极大提升工作效率,把重复劳动交给代码,把时间留给更有价值的工作。
如果觉得这款工具有用,欢迎点赞、收藏、转发,也可以在评论区留言提出改进建议,一起优化升级!

最新文章

随机文章