Skip to content

championcp/parse-oa-td

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

parse-oa-td

批量解析nobody大学 OA 流程中的需求、缺陷及测试报告文档,并生成统一的 Excel 汇总表。

功能亮点

  • 支持批量读取 .doc.docx.xls.xlsx 文档。
  • 自动识别 OA 号并按 OA 号合并需求说明与测试报告。
  • 输出 01_需求与缺陷汇总.xlsx(单 Sheet:需求总表)及对应日志文件。
  • 自动补齐常见字段(状态、归档信息等),方便后续做数据透视或复盘。

运行环境准备

  • Python 3.10 及以上版本。
  • 可选:若需自动将旧版 Word(.doc)转换为 .docx,请提前安装 LibreOffice 并保证 soffice 在系统路径中。

安装依赖

python -m venv .venv         # 可选:创建虚拟环境
source .venv/bin/activate    # Windows 请输入 .venv\\Scripts\\activate
pip install -r requirements.txt

使用说明

  1. 准备一个输入目录,放置 OA 导出的需求/Bug 说明 Word、测试报告 Word/Excel 等文件。
    • 建议文件名包含 OA 号,方便兜底匹配。
    • Word 模版中需保持原有表格字段名称(如“修改类型*”、“需求标题*”、“测试位置”等)。
  2. 执行脚本,指定输入目录与输出文件路径,例如:
    python requirements_extractor.py \
      --input ./input_docs \
      --output ./dist/01_需求与缺陷汇总.xlsx
  3. 程序会在输出目录生成:
    • 01_需求与缺陷汇总.xlsx:整合后的需求/缺陷/测试单表。
    • 01_需求与缺陷汇总_log.txt:运行日志与解析失败列表。

使用脚本 run_extractor.sh

  • 脚本会把 /Applications/LibreOffice.app/Contents/MacOS 注入 PATH,确保 soffice 可用;若 LibreOffice 安装在其他位置,请修改脚本顶部的路径。
  • 默认执行 python3 requirements_extractor.py --input ./input_docs --output ./dist/01_需求与缺陷汇总.xlsx,传入两个参数即可覆盖输入、输出路径。
  • 可通过环境变量 PYTHON_BIN 指定 Python 解释器,例如 PYTHON_BIN=.venv/bin/python ./run_extractor.sh
  • 若脚本文件来自新的克隆或位置,请先运行 chmod +x run_extractor.sh 赋予执行权限。
  • 实际运行示例:./run_extractor.sh ./my_docs ./dist/custom.xlsx

输出字段说明(节选)

  • OA号:自动提取自文档内容或文件名,作为合并主键。
  • 匹配结果完整匹配 / 仅需求 / 仅测试
  • 状态:根据测试结果自动标记为“未验证”“已测试通过”或“未通过”。
  • 其余字段保持模板名称,方便导入现有流程。

故障排查

  • 提示未安装 python-docx:请确认已经执行 pip install -r requirements.txt
  • 解析失败或缺少 OA 号:检查文档内容是否包含标准字段;必要时在文件名中加入 OA 号以便兜底识别。
  • .doc 未自动转换:确认已安装 LibreOffice,或手动先转换为 .docx

项目结构

  • requirements_extractor.py:主脚本,包含文档解析与合并逻辑。
  • requirements.txt:Python 依赖列表。
  • LICENSE:MIT 许可协议。

许可协议

本项目基于 MIT License 发布,可自由复制、修改和分发。

About

解析OA中td,并汇总到excel文档中

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published