Angular 6中HTML表格导出Excel格式异常问题求助
解决Excel导出表格行格式错误的问题
你的问题核心出在循环逻辑的设计上:当前代码是逐个遍历每个数组的元素,每次只把单个sum值和Code放在一行,自然会导致每个数值单独占一行。我们需要的是每个Code对应完整的一行数据——把该Code下的所有sum值一次性放到同一行里。
修正后的代码
export() { let w = new Workbook(); let ws = w.addWorksheet('Sheet 1'); // 添加表头行 ws.addRow(['Code', 'sum1', 'sum2', 'sum3']); // 遍历对象的所有Code键(a、b、c) Object.keys(this.obj).forEach(key => { // 构造完整行数据:Code + 对应数组的所有元素 const rowData = [key, ...this.obj[key]]; ws.addRow(rowData); }); }
代码说明
- 用
Object.keys(this.obj)统一获取所有Code(a、b、c),避免重复写三次冗余循环; - 对每个Code,用扩展运算符
...把对应数组的元素展开,和Code组合成完整的行数组(比如['a', 1, 2, 3]); - 直接将这个完整数组传给
ws.addRow(),就能生成包含Code和所有sum值的一行。
这样导出的Excel就会和你期望的HTML表格格式完全一致:
Code | sum1 | sum2 | sum3
a | 1 | 2 | 3
b | 0 | 0 | 0
c | 1 | 0 | 4
内容的提问来源于stack exchange,提问作者Tenzolinho




