一、前期准备:安装必备的Python工具库
本指南需要2个开源工具库,分别是提取PDF元数据的PyPDF2,和生成Excel电子目录的openpyxl。请按以下步骤操作:
1. 检查Python是否安装
按下Win+R键,输入cmd回车,在弹出的黑框中输入python --version,若显示类似Python 3.8.0(版本≥3.6即可)的内容,说明已安装;若提示“不是内部或外部命令”,请访问官方下载页面安装:https://www.python.org/ftp/python/3.12.5/python-3.12.5-amd64.exe,安装时务必勾选“Add Python 3.12 to PATH”。
2. 安装PyPDF2和openpyxl
在刚才的黑框中依次输入以下2条命令,每条命令后回车:
```
pip install PyPDF2
pip install openpyxl
```
若下载速度慢,可添加国内镜像源:
```
pip install PyPDF2 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
```
二、整理待归档PDF的文件命名规则
为了让目录索引准确、无遗漏,所有待归档PDF必须先统一命名格式。本指南采用档案整理机构通用的「全宗号-年度-保管期限-件号-题名」格式,例如:
Z001-2023-永久-0001-关于2023年度员工入职培训的通知.pdf
注意事项:
- 全宗号、年度、保管期限、件号、题名之间用英文半角短横线“-”分隔,不能用中文短横线、空格或其他符号
- 件号建议统一补位到4位,不足4位在前面加0,避免排序混乱
- 保管期限统一用「永久」「长期」「短期」「30年」「10年」等标准表述
- 所有待归档PDF放在同一个文件夹内,文件夹名可以随意(建议用「待归档PDF」)
三、编写并运行Python自动生成脚本
脚本会自动遍历待归档文件夹,提取每个PDF的命名信息,写入Excel电子目录。请按以下步骤操作:
1. 新建脚本文件

在电脑桌面新建一个文本文档,重命名为自动生成档案目录.py(必须修改后缀名为.py,不能是.txt)。若看不到后缀名,按下Win+E打开文件资源管理器,点击顶部菜单栏的「查看」,勾选「文件扩展名」。
2. 复制并粘贴完整脚本
右键点击自动生成档案目录.py,选择「打开方式」→「记事本」,将以下完整代码复制进去:
```python
import os
from PyPDF2 import PdfReader
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
-- 配置区域:按需修改以下内容 --
待归档PDF的文件夹路径
input_folder = r"C:\Users\你的电脑用户名\Desktop\待归档PDF"
电子目录的保存路径和文件名
output_excel = r"C:\Users\你的电脑用户名\Desktop\电子档案目录.xlsx"
电子目录的表头
headers = ["全宗号", "年度", "保管期限", "件号", "题名", "文件页数", "文件格式", "文件路径"]
-- 配置区域结束:不要修改后面的代码 --
初始化Excel工作簿和工作表
wb = Workbook()
ws = wb.active
ws.title = "电子档案目录"
写入并设置表头格式
header_fill = PatternFill(start_color="4472C4", end_color="4472C4", fill_type="solid")
header_font = Font(name="宋体", size=12, bold=True, color="FFFFFF")
header_alignment = Alignment(horizontal="center", vertical="center")
for col_num, header in enumerate(headers, 1):
cell = ws.cell(row=1, column=col_num, value=header)
cell.fill = header_fill
cell.font = header_font
cell.alignment = header_alignment
遍历待归档文件夹
row_num = 2
for filename in os.listdir(input_folder):
只处理PDF文件
if not filename.lower().endswith(".pdf"):
continue
拼接完整文件路径
file_path = os.path.join(input_folder, filename)
try:
读取PDF页数
with open(file_path, "rb") as f:
reader = PdfReader(f)
page_count = len(reader.pages)
拆分文件名获取信息(去掉.pdf后缀)
name_without_ext = os.path.splitext(filename)[0]
split_parts = name_without_ext.split("-")
检查拆分后的部分是否符合要求(至少有全宗号、年度、保管期限、件号、题名)
if len(split_parts) < 5:
print(f"跳过文件:{filename},命名格式不符合要求")
continue
提取各部分信息
fonds_number = split_parts[0]
year = split_parts[1]
retention_period = split_parts[2]
item_number = split_parts[3]
题名可能包含短横线,所以从第5个部分开始拼接
title = "-".join(split_parts[4:])
file_format = "PDF"
写入Excel
ws.cell(row=row_num, column=1, value=fonds_number)
ws.cell(row=row_num, column=2, value=year)
ws.cell(row=row_num, column=3, value=retention_period)
ws.cell(row=row_num, column=4, value=item_number)
ws.cell(row=row_num, column=5, value=title)
ws.cell(row=row_num, column=6, value=page_count)
ws.cell(row=row_num, column=7, value=file_format)
ws.cell(row=row_num, column=8, value=file_path)
设置行格式
cell_font = Font(name="宋体", size=11)
cell_alignment = Alignment(horizontal="left", vertical="center", wrap_text=True)
for col_num in range(1, 9):
cell = ws.cell(row=row_num, column=col_num)
cell.font = cell_font
cell.alignment = cell_alignment
行号加1
row_num += 1
except Exception as e:
print(f"处理文件失败:{filename},错误信息:{e}")
自动调整列宽
for col in ws.columns:
max_length = 0
column = col[0].column_letter
for cell in col:
try:
if len(str(cell.value)) > max_length:
max_length = len(str(cell.value))
except:
pass
adjusted_width = (max_length + 2) 1.2
ws.column_dimensions[column] = adjusted_width
保存Excel文件
wb.save(output_excel)
print(f"电子档案目录生成成功!保存路径:{output_excel}")
```
3. 修改配置区域的路径
找到代码中「配置区域」的2行内容,修改为你自己的电脑路径:
input_folder:改为你刚才创建的「待归档PDF」文件夹的完整路径(可以打开文件夹,点击地址栏,复制粘贴)
output_excel:改为你想保存电子目录的路径和文件名(建议放在桌面)
注意事项:路径开头的r不能删,它能避免中文路径或特殊字符路径报错;修改路径时,不要删掉路径前后的引号。
4. 运行脚本
保存并关闭记事本,右键点击自动生成档案目录.py,选择「打开方式」→「Python 3.12」(或你安装的其他Python版本)。
运行成功后,会弹出一个黑框,显示「电子档案目录生成成功!保存路径:XXX」,黑框会自动关闭;若有文件命名不符合要求,黑框会显示「跳过文件:XXX」,可以根据提示修改命名后重新运行。
四、检查并完善生成的电子目录
打开生成的Excel文件,完成以下检查:
- 检查排序是否正确:若件号补位到4位,Excel默认升序排列即可;若未补位,选中「件号」列,点击「数据」→「排序」,按「件号」升序排列
- 检查拆分的信息是否有误:重点看题名是否完整(是否包含短横线)、件号是否正确
- 检查PDF页数是否准确:随机抽取3-5个文件,手动打开PDF核对页数
检查无误后,可根据需要调整Excel的格式(如字号、行高、列宽等),然后保存即可。