Files
pinmap-to-pinlist/README.md
Agent d635ddbebe v1.5.4 Bug 修复:模板文件名修正 + 布局重设计
BUG-005: 模板文件名改为 PinMAP-Template.xlsx / PinList-Template.xlsx
BUG-006: 布局改为 Number 外侧 + Name 里侧(v1.5.4 最终版)
- 从边界往中心:第1圈=Number,第2圈=Name
- 上边角点例外处理,15种网格无冲突
- 18/18 单元测试 + 37/37 集成测试全部通过
2026-06-09 08:27:11 +08:00

2.4 KiB
Raw Blame History

PinMAP → PinList 转换器

将 Excel 格式的 PinMAP 文件(方形封装引脚布局图)自动转换为 PinList 格式(引脚序号列表)。

特性

  • 支持 .xls.xlsx 两种格式
  • 零第三方依赖Python 标准库)
  • GUI 文件选择 + 命令行双模式
  • 智能结构验证(重复/间隙/空单元格检测)
  • 逆时针 PinMAP → 顺时针 PinList 自动转换
  • 双向转换MAP→List 与 List→MAP
  • 独立模板MAP→List 使用 BallList-Template.xlsxList→MAP 使用 BallMAP-Template.xlsx
  • 模板格式提取:从模板读取字体、边框、填充、对齐、列宽、行高并应用到输出

快速开始

# GUI 模式(弹出文件选择器)
python main.py

# 命令行模式
python main.py input.xlsx

输出文件:input_PinList.xlsx

项目结构

pinmap-to-pinlist/
├── Code/
│   ├── src/           # 源代码
│   └── docs/          # 架构文档
├── Test/
│   ├── fixtures/      # 测试夹具(含模板文件)
│   └── test_report.md # 测试报告
├── Releases/          # 发布包
├── BallList-Template.xlsx   # MAP→List 样式模板(可放置于项目根目录)
├── BallMAP-Template.xlsx    # List→MAP 样式模板(可放置于项目根目录)
├── CHANGELOG.md
└── README.md

技术栈

  • Python 3.x标准库
  • openpyxl.xlsx 读写)
  • 自定义 BIFF8 引擎(.xls 解析)

版本历史

v1.5.4 (2026-06-09) — Bug 修复版本

  • BUG-005: 模板文件名修正 — BallList-Template.xlsxPinList-Template.xlsxBallMAP-Template.xlsxPinMAP-Template.xlsx
  • BUG-006: 布局重设计 — Number 外侧(第 1 圈)+ Name 里侧(第 2 圈),彻底解决单元格冲突问题
    • 上边Number row 1Name row 2角点例外
    • 左边Number col 0Name col 1
    • 下边Number row rows+3Name row rows+2
    • 右边Number col cols+1Name col cols
  • Pin1 保持在左上角A3=1, B3=Pin1
  • 18/18 单元测试 + 37/37 集成测试全部通过

v1.5.0 (2026-06-06) — 模板分离与格式提取

  • MAP→List 使用 PinList-Template.xlsx(旧名 BallList-Template.xlsx
  • List→MAP 使用 PinMAP-Template.xlsx(旧名 BallMAP-Template.xlsx
  • 模板格式提取:字体、边框、填充、对齐、列宽、行高

许可证

内部项目