v1.0.0: PinMAP → PinList 转换器 首次发布

- 支持 .xls (BIFF8) 和 .xlsx 格式
- GUI 文件选择 + 命令行双模式
- 智能结构验证(重复/间隙/空单元格检测)
- 逆时针 PinMAP → 顺时针 PinList 自动转换
- Python 标准库,零第三方依赖
This commit is contained in:
2026-05-25 13:27:08 +08:00
commit 6b718f7af3
24 changed files with 2720 additions and 0 deletions

35
CHANGELOG.md Normal file
View File

@@ -0,0 +1,35 @@
# Changelog
## [v1.0.0] - 2026-05-25
### 🎉 首次发布
#### 功能
- **PinMAP 解析**:支持方形/长方形封装,左上角为 1 脚,逆时针排序
- **格式支持**:兼容 `.xls`BIFF8 引擎)和 `.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`