const XLSX = require('C:/tmp_xlsx/node_modules/xlsx'); const wb = XLSX.readFile('E:/anKeYuan-largeScreen-9600/test_case/test_case_new.xlsx', {cellStyles: true}); const ws = wb.Sheets[wb.SheetNames[0]]; const data = XLSX.utils.sheet_to_json(ws, {header:1}); // 颜色与测试类型映射 const colorMap = {}; for (let i = 1; i < data.length; i++) { const r = i + 1; const cell = ws['A' + r]; const typeCell = ws['D' + r]; if (cell && cell.s && typeCell) { const color = cell.s.fgColor && cell.s.fgColor.rgb; const type = typeCell.v || typeCell.w || ''; if (color && type) { if (!colorMap[color]) colorMap[color] = {}; colorMap[color][type] = (colorMap[color][type] || 0) + 1; } } } console.log('颜色与测试类型映射:', JSON.stringify(colorMap, null, 2)); // 优先级分布 const priorities = {}; for (let i = 1; i < data.length; i++) { const cell = ws['H' + (i + 1)]; if (cell) priorities[cell.v || cell.w] = (priorities[cell.v || cell.w] || 0) + 1; } console.log('优先级分布:', JSON.stringify(priorities)); // 看列宽(实际像素宽度信息)从文件本身提取(xlsx不保存列宽) // 看字体/对齐等更多样式 const colCell = ws['A1']; console.log('\n标题行A1完整cell:', JSON.stringify(colCell)); const dataCell = ws['C2']; console.log('数据行C2完整cell:', JSON.stringify(dataCell)); // 打印示例参考行完整内容 console.log('\n参考行1完整:', JSON.stringify(data[1])); console.log('参考行2完整:', JSON.stringify(data[2])); console.log('参考行6完整(异常类型):', JSON.stringify(data[6])); console.log('参考行8完整(边界类型):', JSON.stringify(data[8]));