Files
pinmap-to-pinlist/Releases/v1.5.4/CHANGELOG.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.9 KiB
Raw Blame History

Changelog — v1.5.4

发布日期: 2026-06-09 版本类型: Bug 修复版本

🐛 Bug 修复

BUG-005 【高】模板文件名错误

问题: main.py 中引用的模板文件名(BallList-Template.xlsxBallMAP-Template.xlsx)与用户期望的文件名不匹配。

修复:

  • 模板文件重命名:BallList-Template.xlsxPinList-Template.xlsx
  • 模板文件重命名:BallMAP-Template.xlsxPinMAP-Template.xlsx
  • 同步更新 main.py 中的函数名和模板引用路径

BUG-006 【高】布局重设计Number 外侧 + Name 里侧)

问题: PinList→PinMAP→PinList 双向转换中v1.3 的"紧致布局"导致 Number 与 Name 单元格冲突6 处15×15 网格下序号 1 错位到 A2序号 16 错位到 B16。

根本原因: 旧布局将 Name 放在 Number 向内偏移一行/一列的位置,边角处发生冲突。

修复方案: 重新设计布局为 Number 外侧(第 1 圈)+ Name 里侧(第 2 圈),从网格边界往中心排列:

外侧(第 1 圈) 内侧(第 2 圈)
上边 Number 在 row 1最顶行 Name 在 row 2第二行角点例外在 row 1
左边 Number 在 col 0最左列 Name 在 col 1第二列
下边 Number 在 row rows+3最底行 Name 在 row rows+2倒数第二行
右边 Number 在 col cols+1最右列 Name 在 col cols右二列

关键设计点:

  • 上边角点例外: 最左/最右上边 Name 无法放在 row 2被左/右边 Name 占用),分别使用 (1, 0)(1, cols+1) 例外单元格
  • Pin1 保持在左上角A3=1, B3=Pin1
  • 不再需要角点 "//" 合并 — 每条边不共享任何单元格
  • 周长公式 (rows+cols)×2 保持不变

验证:

  • 15 种网格大小4×4, 15×15, 3×5, 2×2, 8×8, 10×12, 20×20, 5×3, 6×7, 2×3, 3×3, 2×4, 3×2, 4×2, 2×5全部无冲突
  • 18/18 单元测试通过
  • 37/37 集成测试通过

🔧 修改文件

文件 修改内容
Code/src/main.py BUG-005: 模板函数和引用改名BUG-006: 传递 cols 参数
Code/src/pinmap_layout.py BUG-006: 重写坐标公式 + get_name_cell() 支持 cols 参数 + 角点例外
Code/src/pinmap_generator.py BUG-006: 传递 cols 参数 + 更新注释
Code/src/pinmap_parser.py BUG-006: 重写边界检测、Name 读取(角点例外检测)
Code/src/test_pinmap.py BUG-006: 更新测试数据适配新布局
Test/fixtures/PinList-Template.xlsx BUG-005: 模板文件重命名
Test/fixtures/PinMAP-Template.xlsx BUG-005: 模板文件重命名

📝 文档

  • 更新 CHANGELOG.md 追加 v1.5.4 版本日志
  • 更新 README.md 追加 v1.5.4 版本说明
  • 生成 Releases/v1.5.4/CHANGELOG.md
  • 更新 docs/bugs.md BUG-005、BUG-006 状态为已修复