diff --git a/docs/bugs.md b/docs/bugs.md index b2c8a32..b8926e0 100644 --- a/docs/bugs.md +++ b/docs/bugs.md @@ -8,4 +8,73 @@ | BUG-004 | 中 | 不支持循环处理流程 | 转换完成后继续操作 | 循环等待下一个文件,输入 Q 返回主菜单 | 处理完直接退出 | 已修复 | F008 | | BUG-005 | 高 | 模板文件名/路径错误 | PinList↔PinMAP 转换时读取模板 | PinMAP 模板为 PinMAP-Template.xlsx,PinList 模板为 PinList-Template.xlsx | v1.5.4 只改文件名未改搜索路径,模板在 Code/src/Template/ 下但代码在根目录找 | 已修复 | v1.5.5 | | BUG-006 | 高 | PinList→PinMAP 上边 Name 与左边 Name 同行(数据无误但肉眼混淆) | 12×12 PinMap:PinList→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行),导致输出结构不完整。 diff --git a/docs/features.md b/docs/features.md index 87e37e6..1fa619e 100644 --- a/docs/features.md +++ b/docs/features.md @@ -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 转换正确性验证 | 使用用户提供的示例 PinList(CSV)作为输入,验证 List→MAP 生成的 PinMAP 与示例 PinMAP 结构一致:环形布局四边引脚位置正确、序号/引脚名匹配、封装标题信息完整 | 示例 PinList CSV | 与示例 PinMAP 结构一致的 xlsx | F013, F014 | P0 | 生成的 PinMAP 与示例 PinMAP 结构完全一致 | 已完成 | +| F016 | PinList→PinMAP 转换正确性验证 | 使用用户提供的示例 PinList(CSV)作为输入,验证 List→MAP 生成的 PinMAP 与示例 PinMAP 结构一致:上方引脚占第2-3行(序号+PinName),标题独立第1行合并单元格,共21行 | 示例 PinList CSV | 与期望 PinMAP 逐行一致的 xlsx | F013, F014 | P0 | 输出与 bugs.md BUG-007 期望 CSV 逐行一致 | 已完成 | | F017 | PinMAP→PinList 转换正确性验证 | 使用用户提供的示例 PinMAP(CSV)作为输入,验证 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 行