摘要:凌晨1点,行政部的小敏还在电脑前对着屏幕叹气——手里堆着100份新员工入职手册,领导要求统一用“微软雅黑、标题小三号加粗、正文小四、段落间距1.5倍”,可现在打开的第37份文档,字体混杂着宋体、楷体,段落缩进更是五花八门。
凌晨1点,行政部的小敏还在电脑前对着屏幕叹气——手里堆着100份新员工入职手册,领导要求统一用“微软雅黑、标题小三号加粗、正文小四、段落间距1.5倍”,可现在打开的第37份文档,字体混杂着宋体、楷体,段落缩进更是五花八门。
“改完这些,天亮都赶不上明天的入职培训了!”她揉着发酸的肩膀,点开第38份文档,鼠标在“字体设置”按钮上反复点击——这是职场人最熟悉的崩溃瞬间:明明是机械重复的工作,却要耗费大量时间,稍不注意还会出错。
但如果你会用Python,这件事根本不用熬夜。今天就教你一个“傻瓜式脚本”,不用懂复杂编程,复制粘贴就能用,100份Word文档的格式统一,5分钟就能搞定。不管你是行政、运营,还是经常处理文档的教师、HR,学会这招,至少能省出2小时下班时间。
很多人觉得“改格式而已,没什么难的”,但实际操作中,3个痛点能把人逼疯:
1. 隐藏格式难清理:有些文档复制粘贴时带了网页、PDF的隐藏格式,明明选了“微软雅黑”,却显示“仿宋_GB2312”,反复调整都没用;
2. 批量操作无入口:Word的“格式刷”只能刷单份文档,100份文档就要打开100次,点击上百次格式刷,手都要抽筋;
3. 细节遗漏难检查:标题是否加粗、段落间距是否统一、页码格式对不对,手动检查很容易漏,等领导指出错误,又要重新返工。
我之前帮HR整理面试反馈表时,30份文档改了2小时,最后还是漏了“落款日期右对齐”的要求,被领导退回重改——现在想想,要是早会这招Python,根本不会浪费这些时间。
别被“Python”吓到,这个方法不用安装复杂软件,不用学编程语法,只要跟着步骤走,电脑小白也能上手。
第一步:准备工具(2分钟搞定)
1. 电脑上安装“Python”(百度搜“Python官网”,下载3.9及以上版本,安装时勾选“Add Python to PATH”,一路点下一步);
2. 安装“python-docx”库(打开电脑“命令提示符”,复制粘贴这段代码:pip install python-docx,按回车,等待10秒完成安装);
3. 把要统一格式的100份Word文档,放在一个文件夹里(比如“桌面-待处理文档”),记住文件夹路径(比如“C:\Users\XXX\Desktop\待处理文档”)。
第二步:复制“傻瓜脚本”,改2个参数就行
下面这段代码是我整理好的“格式统一脚本”,你不用懂原理,只要改2个地方:
from docx import Document
from docx.shared import Inches, Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
import os
# 这里改2个参数:1. 文档文件夹路径;2. 你要的格式
doc_folder = "C:\Users\XXX\Desktop\待处理文档" # 第一步记的文件夹路径
target_font = "微软雅黑" # 要统一的字体
title_font_size = Pt(16) # 标题字号(小三号≈16磅)
content_font_size = Pt(12) # 正文字号(小四≈12磅)
# 遍历文件夹里的所有Word文档
for Filename in os.listdir(doc_folder):
if filename.endswith(".docx"): # 只处理.docx格式(.doc格式需先转成.docx)
doc_path = os.path.join(doc_folder, filename)
doc = Document(doc_path)
# 1. 统一段落格式(标题+正文)
for paragraph in doc.paragraphs:
# 判断是否为标题(这里以“段落开头不含缩进”为标题,可根据需求调整)
if paragraph.paragraph_format.first_line_indent is None:
# 标题格式:加粗、居中、指定字体字号
for run in paragraph.runs:
run.font.name = target_font
run.font.size = title_font_size
run.font.bold = True
# 解决中文显示乱码问题
r = run.element.rPr.rFonts
r.set(qn('w:eastAsia'), target_font)
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 标题居中
paragraph.paragraph_format.space_after = Pt(12) # 标题后间距
else:
# 正文格式:指定字体字号、段落间距1.5倍
run.font.size = content_font_size
paragraph.paragraph_format.line_spacing = 1.5 # 1.5倍行距
paragraph.paragraph_format.first_line_indent = Inches(0.5) # 首行缩进2字符
# 2. 统一表格格式(如果文档有表格,也能统一字体)
for table in doc.tables:
for row in table.rows:
for cell in row.cells:
for paragraph in cell.paragraphs:
for run in paragraph.runs:
run.font.name = target_font
run.font.size = content_font_size
r = run.element.rPr.rFonts
r.set(qn('w:eastAsia'), target_font)
# 保存修改后的文档(在原文件名后加“_已统一”,避免覆盖原文件)
new_filename = os.path.splitext(filename)[0] + "_已统一.docx"
new_doc_path = os.path.join(doc_folder, new_filename)
doc.save(new_doc_path)
print(f"{filename} 格式统一完成!")
print("所有文档处理完毕!")
需要改的2个参数:
1. doc_folder:把引号里的路径,换成你放Word文档的文件夹路径(比如你的文件夹在桌面,路径就是“C:\Users\你的电脑用户名\Desktop\待处理文档”);
2. 格式参数:如果领导要“宋体、标题四号”,就把target_font改成“宋体”,title_font_size改成Pt(14)(四号≈14磅),其他不用动。
第三步:运行脚本,坐等完成
1. 把改好参数的代码,复制到“记事本”里,点击“文件-另存为”,文件名改成“格式统一.py”,保存类型选“所有文件”,编码选“UTF-8”;
2. 把这个“格式统一.py”文件,放到你放Word文档的文件夹里;
3. 双击打开“格式统一.py”,会弹出一个黑色窗口,等窗口消失,打开文件夹——你会看到多了100个“XXX_已统一.docx”的文件,打开任意一个,字体、排版都一模一样!
上面的脚本是“通用版”,但职场中遇到的格式要求千差万别,教你3个常用调整技巧,不用再找别人改代码:
场景1:文档有多级标题(比如“1. 入职须知”“1.1 考勤制度”)
如果你的文档有一级标题、二级标题,只要在脚本里加一段“判断标题级别”的代码:
# 在“统一段落格式”部分,替换成这段代码
for paragraph in doc.paragraphs:
# 一级标题(以“1.”“2.”开头)
if paragraph.text.startswith(("1.", "2.", "3.", "4.", "5.")):
for run in paragraph.runs:
run.font.name = target_font
run.font.size = Pt(16) # 一级标题小三号
run.font.bold = True
r.set(qn('w:eastAsia'), target_font)
paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 二级标题(以“1.1”“1.2”开头)
elif paragraph.text.startswith(("1.1", "1.2", "2.1", "2.2")):
run.font.size = Pt(14) # 二级标题四号
run.font.bold = True
# 正文
else:
# 正文格式不变,和之前一样
场景2:需要统一页码格式(比如“页码在页脚居中,格式为‘第X页 共Y页’”)
在脚本末尾,加一段“统一页码”的代码:
# 统一页码格式(在“保存修改后的文档”之前加)
from docx.enum.text import WD_PAGE_NUMBER
from docx.shared import Inches
# 获取文档所有节
for section in doc.sections:
# 设置页脚
footer = section.footer
footer_paragraph = footer.paragraphs[0]
footer_paragraph.text = "" # 清空原有页脚
# 添加“第X页 共Y页”
page_num_run = footer_paragraph.add_run
page_num_run.add_field('PAGE') # 当前页码
footer_paragraph.add_run(' 页 共 ')
total_page_run = footer_paragraph.add_run
total_page_run.add_field('SECTIONPAGES') # 总页数
footer_paragraph.add_run(' 页')
# 页脚格式:居中、微软雅黑、小五号
footer_paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
for run in footer_paragraph.runs:
run.font.name = target_font
run.font.size = Pt(10.5) # 小五号≈10.5磅
r = run.element.rPr.rFonts
r.set(qn('w:eastAsia'), target_font)
场景3:处理.doc格式的旧文档(很多公司还在用)
Word的.doc格式不能直接用上面的脚本,教你一个“批量转格式”的方法:
1. 打开一个空白Word文档,点击“文件-选项-信任中心-信任中心设置-宏设置”,勾选“启用所有宏”,确定;
2. 按“Alt+F11”打开VBA编辑器,插入一个新模块,复制粘贴这段VBA代码:
Sub DocToDocx
Dim strPath As String
Dim strFile As String
strPath = "C:\Users\XXX\Desktop\待处理文档" ' 你的文档路径
strFile = Dir(strPath & "\*.doc")
Do While strFile ""
Documents.Open Filename:=strPath & "\" & strFile
ActiveDocument.SaveAs2 Filename:=strPath & "\" & Replace(strFile, ".doc", ".docx"), FileFormat:=wdFormatDocumentDefault
ActiveDocument.Close
strFile = Dir
Loop
MsgBox "转换完成!"
End Sub
3. 点击“运行”按钮,等待弹窗提示“转换完成”,所有.doc文档就会变成.docx格式,再用之前的Python脚本处理。
很多人觉得“改格式、整理文档是小事,没必要学Python”,但你有没有想过:
• 同样是处理100份文档,别人熬夜手动改,你用Python5分钟搞定,剩下的时间可以学新技能、写工作总结,甚至准点下班陪家人;
• 领导需要紧急整理会议纪要时,别人还在复制粘贴,你用Python自动提取关键词+排版,很快交出成果,谁更受重视?
• 现在职场竞争这么激烈,失业的人大多是“只会做重复活”的人,而能“用工具提高效率”的人,永远有不可替代的价值。
我把今天的Python脚本整理成了“压缩包”,包含脚本文件、操作截图、常见问题解答,你不用手动敲代码,解压就能用。如果需要的话,可以评论区扣“格式统一”,我把下载链接发给你——职场拼的不是体力,是效率,学会用工具帮自己减负,才是最聪明的做法。
不知道你平时最头疼的重复工作是什么?是整理Excel、做PPT,还是统计数据?评论区说说,下次我教你用Python解决!
来源:绿叶菜