Ext Table复合表头

本文展示了一个使用ExtJS框架实现的column布局示例。该示例通过设置不同列的比例宽度,展示了如何在一个面板中组织三列内容。第一列和第二列各占25%的宽度,第三列则占50%。
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
 <head>
  <title> New Document </title>
   <link rel="stylesheet" type="text/css" href="../resources/css/ext-all.css" />
  <script type="text/javascript" src="../adapter/ext/ext-base.js"></script>
  <script type="text/javascript" src="../ext-all.js"></script>
 </head>

 <body>
    <script>

    Ext.onReady(drawTable);

    function drawTable(){
             var p = new Ext.Panel({
             title: 'column布局',
             width:500,
             height:100,
             layout:'column',//声明布局类型为column
             renderTo:'show',//填充到id为show的区域
             items: [{
                title: '列1',//标题
                html:'<p>列1内容</p>',
                //width:100,//采用固定像素宽度
                columnWidth: .25 //采用比例宽度,相当于百分比,总和为1,这里相当于25%,columnWidth总和必须为1
             },{
                title: '列2',
                html:'<p>列2内容</p>',
                //width:100,
                columnWidth: .25
             },{
                title: '列3',
                html:'<p>列3内容</p>',
                //width:300,
                columnWidth: .5
             }]
        });
    }
    </script>

  <div id='show'></div>
 </body>
 </html>


C:\Users\admin\PyCharmMiscProject\.venv\Scripts\python.exe F:\issue\excel_to_clm.py ✅ 配置文件已加载: F:\issue\config\config.json 🔧 已定位目标 C 文件: F:\issue\input\wlc_clm_data_6726b0.c 📁 输出目录: F:\issue\output 🔁 成功加载 channel_set_map (共 1 项): {'RANGE_2G_20M_1_11': 1} 🧹 'Cover' → 清洗后: 'Cover' 🟡 未匹配到 'Cover' 的模式,跳过... 🧹 '版本历史' → 清洗后: '版本历史' 🟡 未匹配到 '版本历史' 的模式,跳过... 🧹 '2.4G功率表(版本1.0)' → 清洗后: '2.4G功率表版本1.0' ✅ 匹配成功!'2.4G功率表(版本1.0)' → [2G] 配置 ✅ 找到表头行: 第 4 行 🔍 开始向上查找 '认证功率',扫描第 0 ~ 3 行... 📌 发现合并单元格含 '证功率': '认证功率' → G4 🔍 解析 CH 行(第 6 行),限定列范围: Col 6 ~ 18 👉 发现 CH1 @ Col6 👉 发现 CH2 @ Col7 👉 发现 CH3 @ Col8 👉 发现 CH4 @ Col9 👉 发现 CH5 @ Col10 👉 发现 CH6 @ Col11 👉 发现 CH7 @ Col12 👉 发现 CH8 @ Col13 👉 发现 CH9 @ Col14 👉 发现 CH10 @ Col15 👉 发现 CH11 @ Col16 👉 发现 CH12 @ Col17 👉 发现 CH13 @ Col18 ✔️ 成功提取 CH1-13 共 13 个信道 🟡 无法识别物理模式: 'Mode' 🟡 无法识别物理模式: 'Mode' 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🔍 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 🟡 无法识别物理模式: '说明: 1、Boardlimit填写各信道均满足EVM要求的最大功率;根据实际情况调整表格,如存在不同chain不一样的情况,则分开填写。 2、认证功率中填写各信道的认证功率限制;注意空间流,TXBF等信息需对应。 3、实发功率会根据Boardlimit和认证 power取小,生成DUT实发功率。实发功率表根据实际情况增减。' 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_20M_11b 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11b 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11b 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11b 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_20M_11g 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11g 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11g 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11g 🗑️ 跳过空行: 第 9 行(无任何有效功率值) 🗑️ 跳过空行: 第 10 行(无任何有效功率值) 🗑️ 跳过空行: 第 11 行(无任何有效功率值) 🗑️ 跳过空行: 第 12 行(无任何有效功率值) 🗑️ 跳过空行: 第 13 行(无任何有效功率值) 📊 已采集第 14 行 → 11n 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11n 📊 已采集第 14 行 → 11n 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11n 📊 已采集第 14 行 → 11n 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11n 🗑️ 跳过空行: 第 15 行(无任何有效功率值) 🗑️ 跳过空行: 第 16 行(无任何有效功率值) 🗑️ 跳过空行: 第 17 行(无任何有效功率值) 🗑️ 跳过空行: 第 18 行(无任何有效功率值) 🗑️ 跳过空行: 第 19 行(无任何有效功率值) 🗑️ 跳过空行: 第 20 行(无任何有效功率值) 📊 已采集第 21 行 → 11AC 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11AC 📊 已采集第 21 行 → 11AC 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11AC 📊 已采集第 21 行 → 11AC 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11AC 📊 已采集第 21 行 → 11AX 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11AX 📊 已采集第 21 行 → 11AX 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11AX 📊 已采集第 21 行 → 11AX 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11AX 🗑️ 跳过空行: 第 22 行(无任何有效功率值) 🗑️ 跳过空行: 第 23 行(无任何有效功率值) 🗑️ 跳过空行: 第 24 行(无任何有效功率值) 🗑️ 跳过空行: 第 25 行(无任何有效功率值) 🗑️ 跳过空行: 第 26 行(无任何有效功率值) 🗑️ 跳过空行: 第 27 行(无任何有效功率值) 🗑️ 跳过空行: 第 28 行(无任何有效功率值) 🗑️ 跳过空行: 第 29 行(无任何有效功率值) 🗑️ 跳过空行: 第 30 行(无任何有效功率值) 🗑️ 跳过空行: 第 31 行(无任何有效功率值) 📊 已采集第 32 行 → 11BE 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11BE 📊 已采集第 32 行 → 11BE 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11BE 📊 已采集第 32 行 → 11BE 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11BE 🗑️ 跳过空行: 第 33 行(无任何有效功率值) 🗑️ 跳过空行: 第 34 行(无任何有效功率值) 🗑️ 跳过空行: 第 35 行(无任何有效功率值) 🗑️ 跳过空行: 第 36 行(无任何有效功率值) 🗑️ 跳过空行: 第 37 行(无任何有效功率值) 🗑️ 跳过空行: 第 38 行(无任何有效功率值) 🗑️ 跳过空行: 第 39 行(无任何有效功率值) 🗑️ 跳过空行: 第 40 行(无任何有效功率值) 🗑️ 跳过空行: 第 41 行(无任何有效功率值) 🗑️ 跳过空行: 第 42 行(无任何有效功率值) 🗑️ 跳过空行: 第 43 行(无任何有效功率值) 🗑️ 跳过空行: 第 44 行(无任何有效功率值) 📊 已采集第 46 行 → 11n 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11n 📊 已采集第 46 行 → 11n 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11n 📊 已采集第 46 行 → 11n 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11n 🗑️ 跳过空行: 第 47 行(无任何有效功率值) 🗑️ 跳过空行: 第 48 行(无任何有效功率值) 🗑️ 跳过空行: 第 49 行(无任何有效功率值) 🗑️ 跳过空行: 第 50 行(无任何有效功率值) 🗑️ 跳过空行: 第 51 行(无任何有效功率值) 🗑️ 跳过空行: 第 52 行(无任何有效功率值) 📊 已采集第 53 行 → 11AC 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11AC 📊 已采集第 53 行 → 11AC 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11AC 📊 已采集第 53 行 → 11AC 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11AC 📊 已采集第 53 行 → 11AX 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11AX 📊 已采集第 53 行 → 11AX 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11AX 📊 已采集第 53 行 → 11AX 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11AX 🗑️ 跳过空行: 第 54 行(无任何有效功率值) 🗑️ 跳过空行: 第 55 行(无任何有效功率值) 🗑️ 跳过空行: 第 56 行(无任何有效功率值) 🗑️ 跳过空行: 第 57 行(无任何有效功率值) 🗑️ 跳过空行: 第 58 行(无任何有效功率值) 🗑️ 跳过空行: 第 59 行(无任何有效功率值) 🗑️ 跳过空行: 第 60 行(无任何有效功率值) 🗑️ 跳过空行: 第 61 行(无任何有效功率值) 🗑️ 跳过空行: 第 62 行(无任何有效功率值) 🗑️ 跳过空行: 第 63 行(无任何有效功率值) 📊 已采集第 64 行 → 11BE 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11BE 📊 已采集第 64 行 → 11BE 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11BE 📊 已采集第 64 行 → 11BE 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11BE 🗑️ 跳过空行: 第 65 行(无任何有效功率值) 🗑️ 跳过空行: 第 66 行(无任何有效功率值) 🗑️ 跳过空行: 第 67 行(无任何有效功率值) 🗑️ 跳过空行: 第 68 行(无任何有效功率值) 🗑️ 跳过空行: 第 69 行(无任何有效功率值) 🗑️ 跳过空行: 第 70 行(无任何有效功率值) 🗑️ 跳过空行: 第 71 行(无任何有效功率值) 🗑️ 跳过空行: 第 72 行(无任何有效功率值) 🗑️ 跳过空行: 第 73 行(无任何有效功率值) 🗑️ 跳过空行: 第 74 行(无任何有效功率值) 🗑️ 跳过空行: 第 75 行(无任何有效功率值) 🗑️ 跳过空行: 第 76 行(无任何有效功率值) 📊 [Band=2G] 累计 2.4G 信道范围: CH1 – CH11 ✔️ 成功从 '2.4G功率表(版本1.0)' 添加 88 条压缩后 TX 限幅条目 📊 当前累计 2.4G 信道范围: CH1 – CH11 🧹 '5G功率表(版本1.0)' → 清洗后: '5G功率表版本1.0' ✅ 匹配成功!'5G功率表(版本1.0)' → [5G] 配置 ✅ 找到表头行: 第 3 行 🔍 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 📌 发现合并单元格含 '证功率': '认证功率' → L3 🔍 解析 CH 行(第 5 行),限定列范围: Col 11 ~ 35 ❌ 在指定区域内未找到任何 CHx 列 ⚠️ 从 '5G功率表(版本1.0)' 未收集到有效数据 🧹 '6G功率表 (版本1.0)NSS=1' → 清洗后: '6G功率表版本1.0NSS=1' ✅ 匹配成功!'6G功率表 (版本1.0)NSS=1' → [6G] 配置 ✅ 找到表头行: 第 3 行 🔍 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 📌 发现合并单元格含 '证功率': '认证功率' → P3 🔍 解析 CH 行(第 5 行),限定列范围: Col 15 ~ 39 ❌ 在指定区域内未找到任何 CHx 列 ⚠️ 从 '6G功率表 (版本1.0)NSS=1' 未收集到有效数据 🧹 '6G功率表 (版本1.0)NSS=2' → 清洗后: '6G功率表版本1.0NSS=2' ✅ 匹配成功!'6G功率表 (版本1.0)NSS=2' → [6G] 配置 ✅ 找到表头行: 第 3 行 🔍 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 📌 发现合并单元格含 '证功率': '认证功率' → P3 🔍 解析 CH 行(第 5 行),限定列范围: Col 15 ~ 39 ❌ 在指定区域内未找到任何 CHx 列 ⚠️ 从 '6G功率表 (版本1.0)NSS=2' 未收集到有效数据 🧹 '6G功率表 (版本1.0)NSS=4' → 清洗后: '6G功率表版本1.0NSS=4' ✅ 匹配成功!'6G功率表 (版本1.0)NSS=4' → [6G] 配置 ✅ 找到表头行: 第 3 行 🔍 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 📌 发现合并单元格含 '证功率': '认证功率' → P3 🔍 解析 CH 行(第 5 行),限定列范围: Col 15 ~ 39 ❌ 在指定区域内未找到任何 CHx 列 ⚠️ 从 '6G功率表 (版本1.0)NSS=4' 未收集到有效数据 🧹 'Sheet1' → 清洗后: 'Sheet1' 🟡 未匹配到 'Sheet1' 的模式,跳过... 🔧 正在执行 generate_outputs()... 📊 自动分类结果: ├─ Normal 模式(不含 HT): 4 条 └─ HT 模式(含 HT): 84 条 🔧 正在设置监管 fallback 范围: RANGE_2G_20M_1_11 ✅ 已绑定监管 fallback: RANGE_2G_20M_1_11 → CHANNEL_SET_1 💾 已写入 → F:\issue\output\locale_default.c 💾 已写入 → F:\issue\output\clm_macros.h ✅ 已生成精简 manifest 文件: F:\issue\output\generated_ranges_manifest.json 📊 共 7 个唯一 RANGE 宏被使用: - RANGE_2G_20M_11_11 - RANGE_2G_20M_1_1 - RANGE_2G_20M_1_11 - RANGE_2G_20M_2_10 - RANGE_2G_40M_3_3 - RANGE_2G_40M_4_8 - RANGE_2G_40M_9_9 ✅ 所有输出文件生成完成。 💾 已成功将精简后的 channel_set_map 写回配置文件: {'RANGE_2G_20M_1_11': 1} 进程已结束,退出代码为 0 并没有说生成F:\issue\output\tx_limit_table.c
10-15
if finalize_config: used_range_macros = sorted(set(entry["range_macro"] for entry in self.tx_limit_entries)) self.used_ranges = used_range_macros config_data = { "used_ranges_count": len(used_range_macros), "used_ranges": used_range_macros } try: with open( self.config_file_path, 'w', encoding='utf-8') as f: json.dump(config_data, f, indent=4, ensure_ascii=False) print(f" 已添加 'used_ranges' 到 config: { self.config_file_path}") print(f" 共 {len(used_range_macros)} 个唯一 RANGE 宏被使用:") for macro in used_range_macros: print(f" - {macro}") self.last_config = str(self.config_file_path) except Exception as e: print(f" 写入 config 失败: {e}") else: print(" 跳过 used_ranges 生成 (finalize_config=False)")执行成功C:\Users\admin\PyCharmMiscProject\.venv\Scripts\python.exe F:\excle_to_clm\excel_to_clm.py 配置文件已加载: F:\excle_to_clm\config\config.json 已定位目标 C 文件: F:\excle_to_clm\input\wlc_clm_data_6726b0.c 输出目录: F:\output 成功加载 channel_set_map (共 1 项): {'RANGE_2G_20M_1_11': 1} 'Cover' → 清洗后: 'Cover' 未匹配到 'Cover' 的模式,跳过... '版本历史' → 清洗后: '版本历史' 未匹配到 '版本历史' 的模式,跳过... '2.4G功率表(版本1.0)' → 清洗后: '2.4G功率表版本1.0' 匹配成功!'2.4G功率表(版本1.0)' → [2G] 配置 找到表头行: 第 4 行 开始向上查找 '认证功率',扫描第 0 ~ 3 行... 发现合并单元格含 '证功率': '认证功率' → G4 解析 CH 行(第 6 行),限定列范围: Col 6 ~ 18 发现 CH1 @ Col6 发现 CH2 @ Col7 发现 CH3 @ Col8 发现 CH4 @ Col9 发现 CH5 @ Col10 发现 CH6 @ Col11 发现 CH7 @ Col12 发现 CH8 @ Col13 发现 CH9 @ Col14 发现 CH10 @ Col15 发现 CH11 @ Col16 发现 CH12 @ Col17 发现 CH13 @ Col18 成功提取 CH1-13 共 13 个信道 无法识别物理模式: 'Mode' 无法识别物理模式: 'Mode' 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 20M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 解析复合模式 '11AC/AX 40M' → ['11AC', '11AX'] 无法识别物理模式: '说明: 1、Boardlimit填写各信道均满足EVM要求的最大功率;根据实际情况调整表格,如存在不同chain不一样的情况,则分开填写。 2、认证功率中填写各信道的认证功率限制;注意空间流,TXBF等信息需对应。 3、实发功率会根据Boardlimit和认证 power取小,生成DUT实发功率。实发功率表根据实际情况增减。' 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_20M_11b 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11b 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11b 📊 已采集第 7 行 → 11b 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11b 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_20M_11g 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11g 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11g 📊 已采集第 8 行 → 11g 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11g 跳过空行: 第 9 行(无任何有效功率值) 跳过空行: 第 10 行(无任何有效功率值) 跳过空行: 第 11 行(无任何有效功率值) 跳过空行: 第 12 行(无任何有效功率值) 跳过空行: 第 13 行(无任何有效功率值) 📊 已采集第 14 行 → 11n 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11n 📊 已采集第 14 行 → 11n 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11n 📊 已采集第 14 行 → 11n 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11n 跳过空行: 第 15 行(无任何有效功率值) 跳过空行: 第 16 行(无任何有效功率值) 跳过空行: 第 17 行(无任何有效功率值) 跳过空行: 第 18 行(无任何有效功率值) 跳过空行: 第 19 行(无任何有效功率值) 跳过空行: 第 20 行(无任何有效功率值) 📊 已采集第 21 行 → 11AC 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11AC 📊 已采集第 21 行 → 11AC 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11AC 📊 已采集第 21 行 → 11AC 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11AC 📊 已采集第 21 行 → 11AX 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11AX 📊 已采集第 21 行 → 11AX 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11AX 📊 已采集第 21 行 → 11AX 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11AX 跳过空行: 第 22 行(无任何有效功率值) 跳过空行: 第 23 行(无任何有效功率值) 跳过空行: 第 24 行(无任何有效功率值) 跳过空行: 第 25 行(无任何有效功率值) 跳过空行: 第 26 行(无任何有效功率值) 跳过空行: 第 27 行(无任何有效功率值) 跳过空行: 第 28 行(无任何有效功率值) 跳过空行: 第 29 行(无任何有效功率值) 跳过空行: 第 30 行(无任何有效功率值) 跳过空行: 第 31 行(无任何有效功率值) 📊 已采集第 32 行 → 11BE 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_11BE 📊 已采集第 32 行 → 11BE 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT_11BE 📊 已采集第 32 行 → 11BE 20M, 11 个信道, 使用宏: RATE_SET_2G_HT_20M_EXT4_11BE 跳过空行: 第 33 行(无任何有效功率值) 跳过空行: 第 34 行(无任何有效功率值) 跳过空行: 第 35 行(无任何有效功率值) 跳过空行: 第 36 行(无任何有效功率值) 跳过空行: 第 37 行(无任何有效功率值) 跳过空行: 第 38 行(无任何有效功率值) 跳过空行: 第 39 行(无任何有效功率值) 跳过空行: 第 40 行(无任何有效功率值) 跳过空行: 第 41 行(无任何有效功率值) 跳过空行: 第 42 行(无任何有效功率值) 跳过空行: 第 43 行(无任何有效功率值) 跳过空行: 第 44 行(无任何有效功率值) 📊 已采集第 46 行 → 11n 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11n 📊 已采集第 46 行 → 11n 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11n 📊 已采集第 46 行 → 11n 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11n 跳过空行: 第 47 行(无任何有效功率值) 跳过空行: 第 48 行(无任何有效功率值) 跳过空行: 第 49 行(无任何有效功率值) 跳过空行: 第 50 行(无任何有效功率值) 跳过空行: 第 51 行(无任何有效功率值) 跳过空行: 第 52 行(无任何有效功率值) 📊 已采集第 53 行 → 11AC 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11AC 📊 已采集第 53 行 → 11AC 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11AC 📊 已采集第 53 行 → 11AC 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11AC 📊 已采集第 53 行 → 11AX 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11AX 📊 已采集第 53 行 → 11AX 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11AX 📊 已采集第 53 行 → 11AX 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11AX 跳过空行: 第 54 行(无任何有效功率值) 跳过空行: 第 55 行(无任何有效功率值) 跳过空行: 第 56 行(无任何有效功率值) 跳过空行: 第 57 行(无任何有效功率值) 跳过空行: 第 58 行(无任何有效功率值) 跳过空行: 第 59 行(无任何有效功率值) 跳过空行: 第 60 行(无任何有效功率值) 跳过空行: 第 61 行(无任何有效功率值) 跳过空行: 第 62 行(无任何有效功率值) 跳过空行: 第 63 行(无任何有效功率值) 📊 已采集第 64 行 → 11BE 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_11BE 📊 已采集第 64 行 → 11BE 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT_11BE 📊 已采集第 64 行 → 11BE 40M, 7 个信道, 使用宏: RATE_SET_2G_HT_40M_EXT4_11BE 跳过空行: 第 65 行(无任何有效功率值) 跳过空行: 第 66 行(无任何有效功率值) 跳过空行: 第 67 行(无任何有效功率值) 跳过空行: 第 68 行(无任何有效功率值) 跳过空行: 第 69 行(无任何有效功率值) 跳过空行: 第 70 行(无任何有效功率值) 跳过空行: 第 71 行(无任何有效功率值) 跳过空行: 第 72 行(无任何有效功率值) 跳过空行: 第 73 行(无任何有效功率值) 跳过空行: 第 74 行(无任何有效功率值) 跳过空行: 第 75 行(无任何有效功率值) 跳过空行: 第 76 行(无任何有效功率值) [Band=2G] 累计 2.4G 信道范围: CH1 – CH11 成功从 '2.4G功率表(版本1.0)' 添加 88 条压缩后 TX 限幅条目 当前累计 2.4G 信道范围: CH1 – CH11 '5G功率表(版本1.0)' → 清洗后: '5G功率表版本1.0' 匹配成功!'5G功率表(版本1.0)' → [5G] 配置 找到表头行: 第 3 行 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 发现合并单元格含 '证功率': '认证功率' → L3 解析 CH 行(第 5 行),限定列范围: Col 11 ~ 35 在指定区域内未找到任何 CHx 列 从 '5G功率表(版本1.0)' 未收集到有效数据 '6G功率表 (版本1.0)NSS=1' → 清洗后: '6G功率表版本1.0NSS=1' 匹配成功!'6G功率表 (版本1.0)NSS=1' → [6G] 配置 找到表头行: 第 3 行 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 发现合并单元格含 '证功率': '认证功率' → P3 解析 CH 行(第 5 行),限定列范围: Col 15 ~ 39 在指定区域内未找到任何 CHx 列 从 '6G功率表 (版本1.0)NSS=1' 未收集到有效数据 '6G功率表 (版本1.0)NSS=2' → 清洗后: '6G功率表版本1.0NSS=2' 匹配成功!'6G功率表 (版本1.0)NSS=2' → [6G] 配置 找到表头行: 第 3 行 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 发现合并单元格含 '证功率': '认证功率' → P3 解析 CH 行(第 5 行),限定列范围: Col 15 ~ 39 在指定区域内未找到任何 CHx 列 从 '6G功率表 (版本1.0)NSS=2' 未收集到有效数据 '6G功率表 (版本1.0)NSS=4' → 清洗后: '6G功率表版本1.0NSS=4' 匹配成功!'6G功率表 (版本1.0)NSS=4' → [6G] 配置 找到表头行: 第 3 行 开始向上查找 '认证功率',扫描第 0 ~ 2 行... 发现合并单元格含 '证功率': '认证功率' → P3 解析 CH 行(第 5 行),限定列范围: Col 15 ~ 39 在指定区域内未找到任何 CHx 列 从 '6G功率表 (版本1.0)NSS=4' 未收集到有效数据 'Sheet1' → 清洗后: 'Sheet1' 未匹配到 'Sheet1' 的模式,跳过... 正在执行 generate_outputs()... 自动分类结果: ├─ Normal 模式(不含 HT): 4 条 └─ HT 模式(含 HT): 84 条 正在设置监管 fallback 范围: RANGE_2G_20M_1_11 已绑定监管 fallback: RANGE_2G_20M_1_11 → CHANNEL_SET_1 检测到变更,将更新文件: F:\output\tx_limit_table.c 已写入 → F:\output\tx_limit_table.c 已生成: F:\output\locale_default.c 生成 locale 文件 → locale_default.c 已生成: F:\output\clm_macros.h 生成宏定义头文件 → clm_macros.h 已添加 'used_ranges' 到 config: F:\excle_to_clm\config\config.json 共 7 个唯一 RANGE 宏被使用: - RANGE_2G_20M_11_11 - RANGE_2G_20M_1_1 - RANGE_2G_20M_1_11 - RANGE_2G_20M_2_10 - RANGE_2G_40M_3_3 - RANGE_2G_40M_4_8 - RANGE_2G_40M_9_9 已成功将精简后的 channel_set_map 写回配置文件: {'RANGE_2G_20M_1_11': 1} 所有输出文件生成完成。 输出路径: F:\output 功率表名称: DEFAULT (DEFAULT) 进程已结束,退出代码为 0 但是实际config文件却没有写入
最新发布
10-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值