fix: 修复 v1.6 回归 BUG-007 PinList→PinMAP 上方引脚合并问题

This commit is contained in:
2026-06-12 22:13:55 +08:00
parent 7a4a767697
commit 4358214197
2 changed files with 76 additions and 7 deletions

View File

@@ -8,4 +8,73 @@
| BUG-004 | 中 | 不支持循环处理流程 | 转换完成后继续操作 | 循环等待下一个文件,输入 Q 返回主菜单 | 处理完直接退出 | 已修复 | F008 |
| BUG-005 | 高 | 模板文件名/路径错误 | PinList↔PinMAP 转换时读取模板 | PinMAP 模板为 PinMAP-Template.xlsxPinList 模板为 PinList-Template.xlsx | v1.5.4 只改文件名未改搜索路径,模板在 Code/src/Template/ 下但代码在根目录找 | 已修复 | v1.5.5 |
| BUG-006 | 高 | PinList→PinMAP 上边 Name 与左边 Name 同行(数据无误但肉眼混淆) | 12×12 PinMapPinList→PinMAP 转换后查看输出 | 每条边的 Name 和 Number 在独立行/列区域,肉眼可辨 | v1.5.4 上边 Name 在 row 2与左边 Name(row 2)同行3 条边数据混在同一行 | 已修复 | v1.5.5 |
| BUG-007 | 高 | v1.6 PinList→PinMAP 上方引脚合并到标题行,结构缺行 | PinList(QFN60)→PinMAP查看输出 | 第1行独立标题合并单元格第2-3行为上方引脚序号和PinName共21行 | 标题与上方引脚合并为一行 `QFN60,Pin60,...Pin46,`上方引脚无独立行共19行缺2行 | 已修复 | F013, F016 |
| BUG-007 | 高 | v1.6 PinList→PinMAP 上方引脚合并到标题行,结构缺行 | PinList(QFN60)→PinMAP 转换,查看输出 | 第1行独立标题合并单元格第2-3行为上方引脚序号和PinName共21行 | 标题与上方引脚合并为一行上方引脚无独立行共19行缺2行 | **已修复** | F013, F016 |
---
## BUG-007 完整对比数据用户原始反馈2026-06-12
### 程序生成v1.6 实际输出,已转为 CSV
```
QFN60,Pin60,Pin59,Pin58,Pin57,Pin56,Pin55,Pin54,Pin53,Pin52,Pin51,Pin50,Pin49,Pin48,Pin47,Pin46,
,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,
1,Pin1,,,,,,,,,,,,,,Pin45,45
2,Pin2,,,,,,,,,,,,,,Pin44,44
3,Pin3,,,,,,,,,,,,,,Pin43,43
4,Pin4,,,,,,,,,,,,,,Pin42,42
5,Pin5,,,,,,,,,,,,,,Pin41,41
6,Pin6,,,,,,,,,,,,,,Pin40,40
7,Pin7,,,,,,,,,,,,,,Pin39,39
8,Pin8,,,,,,,,,,,,,,Pin38,38
9,Pin9,,,,,,,,,,,,,,Pin37,37
10,Pin10,,,,,,,,,,,,,,Pin36,36
11,Pin11,,,,,,,,,,,,,,Pin35,35
12,Pin12,,,,,,,,,,,,,,Pin34,34
13,Pin13,,,,,,,,,,,,,,Pin33,33
14,Pin14,,,,,,,,,,,,,,Pin32,32
15,Pin15,,,,,,,,,,,,,,Pin31,31
,Pin16,Pin17,Pin18,Pin19,Pin20,Pin21,Pin22,Pin23,Pin24,Pin25,Pin26,Pin27,Pin28,Pin29,Pin30,
,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
```
### 期望输出(用户提供的正确 PinMAP
```
"QFN60 6*6*0.85mm
xxx
版本xxxx",,,,,,,,,,,,,,,,,,
,,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,,
,,Pin60,Pin59,Pin58,Pin57,Pin56,Pin55,Pin54,Pin53,Pin52,Pin51,Pin50,Pin49,Pin48,Pin47,Pin46,,
1,Pin1,,,,,,,,,,,,,,,,Pin45,45
2,Pin2,,,,,,,,,,,,,,,,Pin44,44
3,Pin3,,,,,,,,,,,,,,,,Pin43,43
4,Pin4,,,,,,,,,,,,,,,,Pin42,42
5,Pin5,,,,,,,,,,,,,,,,Pin41,41
6,Pin6,,,,,,,,,,,,,,,,Pin40,40
7,Pin7,,,,,,,,,,,,,,,,Pin39,39
8,Pin8,,,,,,,,,,,,,,,,Pin38,38
9,Pin9,,,,,,,,,,,,,,,,Pin37,37
10,Pin10,,,,,,,,,,,,,,,,Pin36,36
11,Pin11,,,,,,,,,,,,,,,,Pin35,35
12,Pin12,,,,,,,,,,,,,,,,Pin34,34
13,Pin13,,,,,,,,,,,,,,,,Pin33,33
14,Pin14,,,,,,,,,,,,,,,,Pin32,32
15,Pin15,,,,,,,,,,,,,,,,Pin31,31
,,Pin16,Pin17,Pin18,Pin19,Pin20,Pin21,Pin22,Pin23,Pin24,Pin25,Pin26,Pin27,Pin28,Pin29,Pin30,,
,,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,,
```
### 差异明细
| # | 行号(期望) | 内容 | 实际 | 期望 |
|---|-------------|------|------|------|
| 1 | 第1行 | 标题 | `QFN60`(单行,上方引脚混入同行) | `"QFN60 6*6*0.85mm\nxxx\n版本xxxx"`(多行合并单元格,独占整行) |
| 2 | 第2行 | 上方序号 | **缺失** | `,,60,59,58,57,56,55,54,53,52,51,50,49,48,47,46,,` |
| 3 | 第3行 | 上方PinName | **缺失** | `,,Pin60,Pin59,Pin58,...Pin47,Pin46,,` |
| 4 | 第4-18行 | 左右引脚 | 正确 | 正确 |
| 5 | 第19行 | 下方PinName | 正确 | 正确 |
| 6 | 第20行 | 下方序号 | 正确 | 正确 |
| 7 | 总行数 | — | **19 行** | **21 行(缺 2 行)** |
**根因判断:** PinList→PinMAP 生成时上方Top引脚未创建独立的序号行和 PinName 行期望第2-3行而是被错误地合并到了标题行第1行导致输出结构不完整。

View File

@@ -39,7 +39,7 @@
| F013 | 修复 PinMAP→PinList 上方引脚丢失 | PinMAP 解析时封装上侧Top引脚未被识别导致 PinList 中缺失上边所有引脚。需修复解析逻辑确保四边引脚全部提取 | PinMAP Excel | 完整的 PinList | 无 | P0 | 示例 QFN60 PinMAP→PinList 输出 60 个引脚,无缺失 | 已完成 |
| F014 | PinList→PinMAP 样式模板应用 | List→MAP 时必须读取 `PinMAP-Template.xlsx`(位于 Code/src/Template/),提取字体(名称/大小/粗体/颜色)、对齐方式(水平/垂直)、列宽、行高、单元格背景色、边框样式,应用到输出 xlsx。行列数由实际数据决定不复制模板行列结构 | PinMAP-Template.xlsx + PinList 数据 | 带模板样式的 PinMAP xlsx | F013 | P0 | 输出 PinMAP 的字体、对齐、列宽行高、背景色、边框与模板一致 | 已完成 |
| F015 | PinMAP→PinList 样式模板应用 | MAP→List 时必须读取 `PinList-Template.xlsx`(位于 Code/src/Template/),提取字体、对齐方式、列宽、行高、单元格背景色、边框样式,应用到输出 xlsx。行列数由实际数据决定 | PinList-Template.xlsx + PinMAP 数据 | 带模板样式的 PinList xlsx | F013 | P0 | 输出 PinList 的字体、对齐、列宽行高、背景色、边框与模板一致 | 已完成 |
| F016 | PinList→PinMAP 转换正确性验证 | 使用用户提供的示例 PinListCSV作为输入验证 List→MAP 生成的 PinMAP 与示例 PinMAP 结构一致:环形布局四边引脚位置正确、序号/引脚名匹配、封装标题信息完整 | 示例 PinList CSV | 与示例 PinMAP 结构一致的 xlsx | F013, F014 | P0 | 生成的 PinMAP 与示例 PinMAP 结构完全一致 | 已完成 |
| F016 | PinList→PinMAP 转换正确性验证 | 使用用户提供的示例 PinListCSV作为输入验证 List→MAP 生成的 PinMAP 与示例 PinMAP 结构一致:上方引脚占第2-3行(序号+PinName)标题独立第1行合并单元格共21行 | 示例 PinList CSV | 与期望 PinMAP 逐行一致的 xlsx | F013, F014 | P0 | 输出与 bugs.md BUG-007 期望 CSV 逐行一致 | 已完成 |
| F017 | PinMAP→PinList 转换正确性验证 | 使用用户提供的示例 PinMAPCSV作为输入验证 MAP→List 生成的 PinList 与示例 PinList 一致60 个引脚无缺失、封装名正确提取、格式正确 | 示例 PinMAP CSV | 与示例 PinList 结构一致的 xlsx | F013, F015 | P0 | 生成的 PinList 与示例 PinList 结构完全一致 | 已完成 |
## 优先级排序
@@ -62,9 +62,9 @@
| Bug ID | 关联功能 | 问题描述 | 详细对比 | 状态 |
|--------|---------|---------|---------|------|
| BUG-007 | F013, F016 | PinList→PinMAP 上方引脚并入标题行,结构缺 2 行 | 程序生成19 行,标题 `QFN60,Pin60,...` 上方引脚混入第 1 行期望21 行,第 1 行独立标题(合并单元格),第 2-3 行为上方序号和 PinName第 4 行起为左边引脚 | 已修复 |
| BUG-007 | F013, F016 | PinList→PinMAP 上方引脚并入标题行,结构缺 2 行 | 程序生成19 行,标题 `QFN60,Pin60,...` 上方引脚混入第 1 行期望21 行,第 1 行独立标题(合并单元格),第 2-3 行为上方序号和 PinName第 4 行起为左边引脚 | **已修复** |
**具体差异(已修复**
1. 标题行现在独占第 1 行A1 合并单元格),不包含任何引脚数据
2. 上方引脚有独立序号行(第 2 行)和 PinName 行(第 3 行)
3. 总行数19 增加到 20标题独立行 + 上方引脚独立 2 行 + 左/下/右边引脚行)
**具体差异(见 bugs.md BUG-007 完整 CSV 对比**
1. 上方引脚Pin60-Pin46被挤入第 1 行标题行,缺少独立的上方序号行和 PinName 行
2. 标题应为多行合并单元格,实际被压缩为单行
3. 总行数19 vs 期望 21缺 2 行