6.1 KiB
6.1 KiB
.docx 文件处理说明
脚本说明
process_templates_docx_only.py
这是一个专门处理已转换为 .docx 格式的模板文档的脚本。
特点:
- ✅ 只处理 .docx 文件,跳过 .doc 文件
- ✅ 不需要转换功能,直接处理已转换的文档
- ✅ 自动识别文档类型
- ✅ 智能添加占位符
- ✅ 保持原有目录结构
使用步骤
1. 确保文件已转换
确保所有需要处理的文档都已经转换为 .docx 格式,并放在 模板/原始模板 目录下。
脚本会自动查找所有子目录中的 .docx 文件,包括:
模板/原始模板/2-初核模版/1.初核请示/批量改格式_20251207182627/目录下的文件- 其他任何子目录中的 .docx 文件
2. 运行脚本
python process_templates_docx_only.py
3. 检查结果
脚本会:
- 扫描所有 .docx 文件
- 识别文档类型
- 添加占位符
- 保存到
模板文件夹(保持目录结构)
输出说明
处理成功
处理: 1.请示报告卡(XXX)_转自DOC.docx
类型: REPORT_CARD
输入: 模板\原始模板\2-初核模版\1.初核请示\批量改格式_20251207182627\1.请示报告卡(XXX)_转自DOC.docx
输出: 模板\2-初核模版\1.初核请示\1.请示报告卡(XXX).docx
处理: 1.请示报告卡(XXX)_转自DOC.docx
✓ 处理成功,替换了 3 处占位符
无法识别类型
⚠ 无法识别文档类型: 某个文件.docx
路径: 模板\原始模板\...\某个文件.docx
处理失败
✗ 处理失败: [错误信息]
文件命名规则
脚本会自动清理文件名:
- 移除
_转自DOC后缀 - 移除
(XXX)、(XXX)、XXX等占位符标记 - 保持原有文件名核心部分
示例:
1.请示报告卡(XXX)_转自DOC.docx→1.请示报告卡(XXX).docx2.初步核实审批表(XXX)_转自DOC.docx→2.初步核实审批表(XXX).docx
占位符处理逻辑
脚本会识别以下模式并添加占位符:
-
字段名称: 具体值 → 字段名称: {{field_code}}
- 例如:
被核查人姓名: 张三→被核查人姓名: {{target_name}}
- 例如:
-
字段名称: XXX/待填 → 字段名称: {{field_code}}
- 例如:
被核查人姓名: XXX→被核查人姓名: {{target_name}}
- 例如:
-
表格中的字段:同样处理表格单元格中的字段
支持的文档类型
脚本支持以下文档类型:
- 请示报告卡 (REPORT_CARD)
- 初步核实审批表 (PRELIMINARY_VERIFICATION_APPROVAL)
- 初核方案 / 附件初核方案 (INVESTIGATION_PLAN)
- 谈话通知书 (NOTIFICATION_LETTER)
- 谈话笔录 (INTERVIEW_RECORD)
- 谈话询问对象情况摸底调查30问 (INVESTIGATION_30_QUESTIONS)
- 被谈话人权利义务告知书 (RIGHTS_OBLIGATIONS_NOTICE)
- 点对点交接单 (HANDOVER_FORM)
- 陪送交接单 (ESCORT_HANDOVER_FORM)
- 保密承诺书 (CONFIDENTIALITY_COMMITMENT)
- 办案人员-办案安全保密承诺书 (INVESTIGATOR_CONFIDENTIALITY_COMMITMENT)
- 请示报告卡(初核报告结论) (REPORT_CARD_CONCLUSION)
- 初核情况报告 (INVESTIGATION_REPORT)
- 谈话审批表 (INTERVIEW_APPROVAL_FORM)
- 谈话前安全风险评估表 (PRE_INTERVIEW_RISK_ASSESSMENT)
- 谈话方案 (INTERVIEW_PLAN)
- 谈话后安全风险评估表 (POST_INTERVIEW_RISK_ASSESSMENT)
文件结构
处理后的文件结构:
模板/
├── 2-初核模版/
│ ├── 1.初核请示/
│ │ ├── 1.请示报告卡(XXX).docx ← 处理后的文件
│ │ ├── 2.初步核实审批表(XXX).docx
│ │ └── 3.附件初核方案(XXX).docx
│ └── ...
└── ...
注意事项
-
只处理 .docx 文件
- 脚本会自动跳过 .doc 文件
- 如果还有 .doc 文件需要处理,请先转换为 .docx
-
文件位置
- 源文件:
模板/原始模板/目录下(包括所有子目录) - 输出文件:
模板/目录下(保持相对目录结构)
- 源文件:
-
占位符检查
- 处理后的模板需要人工检查
- 确保占位符格式正确:
{{field_code}} - 确保占位符位置合理
-
文件名清理
- 脚本会自动清理文件名中的转换标记
- 如果文件名不符合预期,可以手动调整
常见问题
Q1: 某些文件没有被处理
A: 检查:
- 文件是否是 .docx 格式(不是 .doc)
- 文件是否在
模板/原始模板目录下 - 文档类型是否被识别(查看输出日志)
Q2: 占位符没有添加
A: 可能原因:
- 文档中字段名称与映射表不匹配
- 字段值已经是占位符格式
- 字段值为空或特殊字符
解决方案:
- 检查文档内容
- 手动添加占位符
- 检查字段名称是否正确
Q3: 文件名不正确
A: 脚本会自动清理文件名,如果不符合预期:
- 可以手动重命名输出文件
- 或者修改脚本中的文件名清理逻辑
与 process_templates.py 的区别
| 特性 | process_templates.py | process_templates_docx_only.py |
|---|---|---|
| 处理 .doc 文件 | ✅ 是(需要转换) | ❌ 否(跳过) |
| 处理 .docx 文件 | ✅ 是 | ✅ 是 |
| 需要 Word/COM | ✅ 是(用于转换) | ❌ 否 |
| 转换功能 | ✅ 有 | ❌ 无 |
| 适用场景 | 原始 .doc 文件 | 已转换的 .docx 文件 |
推荐使用场景
使用 process_templates_docx_only.py 当:
- ✅ 所有文件已经手动转换为 .docx 格式
- ✅ 不想处理 .doc 文件转换
- ✅ 只需要处理已转换的文档
使用 process_templates.py 当:
- ✅ 还有 .doc 文件需要自动转换
- ✅ 系统已安装 Microsoft Word 和 pywin32
- ✅ 需要完整的自动化流程
下一步
处理完成后:
-
检查生成的模板
- 打开处理后的模板文件
- 检查占位符是否正确添加
- 手动调整不正确的占位符
-
运行初始化脚本
python init_all_templates.py- 上传模板到 MinIO
- 更新数据库配置
-
测试文档生成
- 使用 API 测试文档生成功能
- 确认模板可以正常使用