Files
pinmap-to-pinlist/CHANGELOG.md

3.6 KiB
Raw Blame History

Changelog

[v1.5.0] - 2026-06-06

功能新增

  • F009 MAP→List 使用 balllist 模板run_map_to_list() 改查 BallList-Template.xlsx,不再共用旧模板
  • F010 List→MAP 使用 ballmap 模板run_list_to_map() 改查 BallMAP-Template.xlsx,模板完全分离
  • F011 模板格式提取式应用:从模板的 cellXfs/fonts/borders/fills 提取实际样式定义,替换硬编码边框和对齐;无模板时完全回退到默认样式
  • F012 验证+回归测试:新增 test_f012_pinname_position() 验证下边 Name 在 max_row-1、上边 Name 在 min_row+1添加 5×5 往返一致性测试

🗑️ 废弃

  • _find_template_path() (PinMAP-Template.xlsx) — 不再自动查找,由 _find_balllist_template_path()_find_ballmap_template_path() 替代

📝 文档

  • 更新 docs/tasks.md T015 状态为已完成
  • 更新 docs/features.md F009-F012 状态

🔧 修改文件

  • Code/src/main.py — 新增两个模板查找函数,修改两个方向的模板调用
  • Code/src/xlsx_writer.py — 重写 _styles_xml() 支持模板样式提取
  • Code/src/template_reader.py — 增强 cellXfs 提取xfId、applyAlignment、wrapText
  • Code/src/test_pinmap.py — 新增 F012 回归测试

[v1.3.15] - 2026-06-01

🐛 Bug 修复

  • pinmap_layout.py: 周长公式从 2(rows+cols)4 改为 (rows+cols)×2 — 修复角点共享策略,每条边独立包含其端点
  • pinmap_generator.py: 角点单元格写入 "6/7" 格式 — 修复 v1.3 下角点引脚丢失问题
  • pinmap_parser.py: 读取时包含角点,按 "/" 拆分解析多引脚序号 — 修复 roundtrip 丢失引脚问题

[v1.2.0] - 2026-05-26

🐛 Bug 修复

  • run.bat: cd /d "%~dp0src"cd /d "%~dp0Code\src" — 修复 cd 路径报错
  • run.bat: chcp 65001 末尾添加 >nul — 修复 title 中文乱码
  • run.bat: mode con lines=20lines=50 — 修复 Log 窗口无法上滑
  • Code/src/file_selector.py: .strip() 后增加 .strip('"\'') — 修复拖拽文件路径带引号导致不存在

[v1.0.1] - 2026-05-25

📝 文档完善

  • 新增 Code/docs/README.md — 项目完整说明文档8.1KB
  • 新增 Code/docs/QUICKSTART.md — 快速入门指南6.6KB
  • 新增 Code/docs/RELEASE.md — 版本发布说明5.1KB
  • 完善项目文档体系,覆盖架构设计、快速上手、版本历史

[v1.0.0] - 2026-05-25

🎉 首次发布

功能

  • PinMAP 解析:支持方形/长方形封装,左上角为 1 脚,逆时针排序
  • 格式支持:兼容 .xlsBIFF8 引擎)和 .xlsx 两种 Excel 格式
  • 智能验证:自动检测重复引脚、间隙、空单元格等结构问题
  • PinList 生成:按顺时针顺序输出引脚序号列表
  • GUI 模式:支持 tkinter 文件选择器,零命令行使用
  • 命令行模式python main.py input.xlsx 快速转换

技术

  • Python 标准库,零第三方依赖
  • 自定义 BIFF8 引擎解析 .xls 文件(~19KB
  • openpyxl 读写 .xlsx 文件
  • 模块化架构:解析 → 验证 → 生成 → 输出

架构

  • main.py — 入口与流程编排
  • xls_reader.py — BIFF8 .xls 解析引擎
  • xlsx_reader.py.xlsx 解析器
  • pinmap_parser.py — PinMAP 结构解析
  • validator.py — 结构验证与错误检测
  • pinlist_generator.py — PinList 生成器
  • xlsx_writer.py.xlsx 输出
  • file_selector.py — tkinter 文件选择器
  • models.py — 数据模型
  • utils.py — 工具函数

测试

  • 6 个测试夹具覆盖正常/异常场景
  • 测试报告:Test/test_report.md