Skip to content

Latest commit

 

History

History
309 lines (214 loc) · 6.81 KB

File metadata and controls

309 lines (214 loc) · 6.81 KB

完结单批量导出工具

将 Word 格式的项目完结单批量导出到 Excel 表格,支持一个项目多个系统的情况。


📦 环境要求

  • Python 3.6 或更高版本
  • 必需的 Python 库:
    • python-docx
    • pandas
    • openpyxl

🚀 安装步骤

1. 安装 Python 库

在命令行中执行以下命令:

pip install python-docx pandas openpyxl colorama

2. 准备文件

Script.py 脚本放到完结单文件所在的目录下。


💻 使用方法

1. 打开命令行

在完结单所在目录下:

  • Windows: 按住 Shift + 右键点击空白处 → 选择"在此处打开命令窗口"或"在终端中打开"
  • Mac/Linux: 在该目录下打开终端

2. 运行脚本

python Script.py

3. 查看输出

脚本会自动:

  • 扫描当前目录下所有包含"完结单"的 .docx 文件
  • 提取项目信息
  • 生成 Excel 文件:XXXX年第X季度项目完结单.xlsx

📝 完结单填写规范

一、文档要求

项目 要求 示例
文件名 必须包含"完结单"三个字 QZXGC-202512004完结单.docx
文件格式 .docx(Word 文档)

二、项目基本信息

1. 项目编号 ⭐

  • 要求:必须以 QZX 开头,不包含中文
  • 格式
    ✅ QZXGC-202512004
    ✅ QZX2025-0444
    ❌ 项目编号:QZXGC-202512004(包含中文)
    

2. 项目名称

  • 要求:建议填写完整,为空也会输出但项目名称列显示为空
  • 示例
    ✅ 大唐天镇清洁能源有限公司 2025年度信息化系统安全等级保护测评项目
    ✅ 人事考试中心等保测评项目
    

3. 客户单位名称

  • 要求:内容不为空即可
  • 示例
    ✅ 大唐天镇清洁能源有限公司
    ✅ 人事考试中心
    ✅ 省财政厅
    ✅ 人民政府办公室
    ✅ 住房公积金管理中心
    

4. 项目地点

  • 要求:不要包含顿号
  • 格式
    ✅ 大同
    ✅ 太原
    ✅ 运城
    ❌ 太原、晋中、大同(包含顿号)
    

5. 项目类型 ⭐ 重要

  • 要求:必须使用实心圆 标记选中的类型
  • 支持的类型:等保、密评、风评、安评、数评、软测、安服
  • 格式
    ✅ ●等保   (实心圆)
    ✅ ● 等保  (实心圆+空格)
    ❌ ○等保   (空心圆)
    ❌ • 等保  (小圆点)
    ❌ √等保   (对勾)
    

6. 启动时间

  • 要求:必须包含 /- 分隔符
  • 格式
    ✅ 2025/12/1
    ✅ 2025-12-01
    ❌ 20251201(没有分隔符)
    ❌ 2025年12月1日(中文格式)
    

三、系统信息

系统信息表格结构

必须包含以下列标题(在同一行):

  • 系统名称
  • 系统级别
  • 系统类型
  • 人员工作安排及贡献率(或"贡献率")

1. 系统名称

  • 要求:建议填写,为空会跳过该行(除非有其他系统信息)
  • 示例
    ✅ 电力监控系统
    ✅ 光功率预测系统
    ✅ 成品油流通智慧监管平台(代码审计)
    

2. 系统级别

  • 要求:纯数字或斜杠 /
  • 格式
    ✅ 2
    ✅ 3
    ✅ /
    
  • 特殊说明:如果项目类型是"风评、安评、数评、软测、安服",系统级别会自动填充为 /

3. 系统类型

  • 要求:任意文本或 /
  • 示例
    ✅ 云计算(租户)
    ✅ 工控系统
    ✅ 传统系统
    ✅ /
    
  • 特殊说明:如果项目类型是"风评、安评、数评、软测、安服",系统类型会自动填充为 /

4. 人员工作安排及贡献率 ⭐ 重要

  • 要求姓名:工作内容(百分比)格式
  • 多人格式:用分号、顿号或换行分隔
  • 输出格式:每人一行 姓名百分比

输入示例:

张三:报告编制;项目归档(85%)
李四:技术测评、项目归档(15%)

输出结果:

张三85%
李四15%

四、特殊情况

1. 一个项目多个系统

  • ✅ 在系统信息表中,每个系统占一行
  • ✅ 最终会输出多条记录,序号连续

示例:

| 系统名称       | 系统级别 | 系统类型 |
|----------------|----------|----------|
| 电力监控系统   | 2        | 工控系统 |
| 光功率预测系统 | 2        | 传统系统 |

输出:
序号1: ...电力监控系统...
序号2: ...光功率预测系统...

2. 没有系统信息的项目

  • ✅ 对于"风评、安评、数评、软测、安服"项目,可以不填写系统信息
  • ✅ 系统级别和系统类型会自动填充为 /

⚠️ 常见问题

Q1: 运行时提示"找不到文件"

A: 确保:

  • 完结单文件名包含"完结单"三个字
  • 文件格式是 .docx
  • 文件不是临时文件(不以 ~$ 开头)

Q2: 项目类型识别不出来

A: 检查:

  • 是否使用实心圆 (不是空心圆
  • 和项目类型之间可以有空格

Q3: 某个系统没有输出

A: 检查:

  • 系统名称是否为空
  • 系统信息表的表头是否包含"系统名称"、"系统级别"、"系统类型"

Q4: 人员贡献率显示不正确

A: 确保格式为:姓名:工作内容(百分比)

  • 百分比必须用括号 ()() 包裹
  • 多人用分号 或顿号 分隔

📊 输出说明

脚本会生成 Excel 文件,包含以下列:

列名 说明
序号 自动生成的连续序号
部门 固定为"软测部"
项目编号 从完结单提取
项目名称 从完结单提取
客户单位名称 从完结单提取
项目地点 从完结单提取
项目类型 等保/密评/风评/安评/数评/软测/安服
系统名称 从系统信息表提取
系统级别 从系统信息表提取
系统类型 从系统信息表提取
人员贡献率 简化格式:姓名百分比(每人一行)

🔧 调试模式

脚本运行时会显示调试信息,包括:

  • 找到的文档数量
  • 每个文档的项目名称、项目类型、系统数量
  • 项目类型识别过程(查找 符号)

如果提取不正确,请查看控制台输出的调试信息。


📞 技术支持

如有问题,请检查:

  1. 完结单是否按照规范填写
  2. Python 环境是否正确安装
  3. 必需的库是否已安装

📄 许可证

本工具仅供内部使用。