Files
pinmap-to-pinlist/Releases/v1.0.1/docs/RELEASE.md
Agent 836ad20515 v1.1.0: 增加交互提示、路径输入、窗口属性配置
- main.py: 增加show_banner()启动说明、各阶段[INFO]日志、结果摘要、任意键退出
- file_selector.py: 重写为路径输入→验证→空输入弹窗回退→不存在循环重试
- run.bat: 新建启动脚本(chcp 65001, mode con cols=80 lines=20, color 0B, title固定署名, pause)
- Code/docs/modification-assessment.md: 修改需求评估文档
2026-05-25 17:29:19 +08:00

5.0 KiB
Raw Blame History

版本发布说明


v1.0.0 — 2026-05-25

🎉 首次发布

这是 PinMAP → PinList 转换器的第一个正式版本,实现了从 Excel PinMAP 到 PinList 的完整转换流程。


新增功能

PinMAP 解析

  • 自动识别方形和长方形封装结构
  • 沿四条边(左→下→右→上)逆时针提取引脚
  • 角点共享处理(按单元格位置去重)
  • 支持 2×2 及以上任意尺寸

数据验证

  • 序号连续性检查:检测 1~N 序列中的间隔
  • 序号唯一性检查:检测重复的引脚序号
  • PinName 完整性检查:检测缺失的引脚名称(警告级别)
  • 结构完整性检查:验证方形区域最小尺寸和 A1 封装信息

PinList 生成

  • A 列 PinNameB 列 Pin 序号
  • 按 Pin 序号递增排序
  • 缺失 PinName 自动设为 "NC"

格式支持

  • .xls 读取BIFF8 引擎OLE2 复合文档解析)
  • .xlsx 读取OOXML 引擎ZIP + XML 解析)
  • .xlsx 写入OOXML 引擎(纯手工构建)

运行模式

  • GUI 模式tkinter 文件选择对话框Windows 推荐)
  • 命令行模式python main.py input.xlsxLinux/Mac 推荐)
  • 自动回退:无 GUI 环境自动切换至命令行模式

技术实现

模块 代码量 说明
xls_reader.py ~400 行 BIFF8 OLE2 解析引擎,支持 SST/LABELSST/NUMBER/FORMULA/RK/MULRK/LABEL
xlsx_reader.py ~80 行 ZIP + XML 解析,支持共享字符串表
xlsx_writer.py ~120 行 OOXML 构建,生成标准 .xlsx 文件
pinmap_parser.py ~100 行 方形边界检测 + 四边引脚提取
validator.py ~60 行 连续性/唯一性/完整性验证
pinlist_generator.py ~40 行 PinList 生成 + NC 默认值
file_selector.py ~35 行 tkinter 对话框 + 命令行回退
main.py ~60 行 流程编排 + 异常处理
models.py ~40 行 数据模型定义
utils.py ~35 行 坐标转换工具

总代码量:约 1000 行(不含注释和空行)
第三方依赖0


测试覆盖

单元测试8 个用例)

用例 测试内容 结果
test_4x4_parse 4×4 方形 PinMAP 解析
test_4x4_validate 4×4 方形验证
test_missing_names_warning PinName 缺失警告
test_duplicate_numbers 序号重复检测
test_gap_in_numbers 序号不连续检测
test_empty_cells 空单元格处理
test_no_pins 无引脚数据检测
test_12pin_square 12 引脚方形解析

集成测试6 个用例)

用例 输入文件 测试内容 结果
TC001 sample_4x4.xlsx 标准 4×4 转换8 Pin
TC002 sample_rect.xlsx 长方形转换13 Pin
TC003 error_gap.xlsx 序号不连续检测
TC004 error_dup.xlsx 序号重复检测
TC005 warning_missing.xlsx PinName 缺失警告
TC006 error_empty_a1.xlsx A1 为空检测

测试通过率100%14/14


已知问题

# 问题 严重性 说明
K1 XLS 读取缺乏真实样本验证 当前测试环境无 .xls 格式测试文件BIFF8 引擎尚未在真实 .xls 文件上验证
K2 无字体/格式保留 输出文件不保留原始 Excel 的字体、颜色、边框等格式信息
K3 仅支持 sheet1 仅读取 Excel 文件的第一个工作表
K4 Linux 无头环境无 GUI 无显示器环境下 tkinter 不可用,需使用命令行模式

限制

限制项 说明
引脚数量 建议 < 1000 引脚(典型封装 < 200 引脚,无压力)
输入格式 仅支持 .xls.xlsx,不支持 CSV/其他格式
输出格式 仅输出 .xlsx,不支持 .xls
工作表 仅处理第一个工作表
公式单元格 仅读取公式的计算结果,不保留公式本身

未来计划

v1.1.0 — 格式增强(规划中)

  • 支持 .xls 格式输出
  • 保留原始 Excel 的字体和格式
  • 支持多工作表选择

v1.2.0 — 功能扩展(规划中)

  • 批量转换(拖拽多个文件)
  • CSV 格式输出
  • PinMAP 结构可视化预览

v2.0.0 — 架构升级(远期规划)

  • 支持更多封装类型BGA、QFN 等)
  • 插件式解析器架构
  • Web 界面

升级指南

首次使用:直接运行即可,无需升级。

从测试版升级:替换 Code/src/ 目录下所有文件。


贡献者

  • 架构设计Script Architect
  • 编码实现Coding Agent × 3
  • 测试验证QA Agent
  • 文档编写Doc Gen Agent

获取帮助

  • 查看 QUICKSTART.md 了解使用方法
  • 查看 architecture-design.md 了解技术细节
  • 查看 Test/test_report.md 了解测试详情