如何在JavaScript的forEach循环中使用奇数列索引(excel4node场景)
解决excel4node循环设置奇数起始列的问题
你之前的问题出在forEach的循环变量index是迭代器自动传入的,循环内修改index += 2不会改变下一次迭代的index值,它依然会按0、1、2的顺序递增,所以你的调整起不到作用。
正确的做法是通过当前迭代的索引计算出目标的奇数起始列:
const names = ['AA','BB','CC']; names.forEach((title, idx) => { // 根据迭代索引计算奇数起始列:0→1,1→3,2→5 const startCol = idx * 2 + 1; const endCol = startCol + 1; sheet.cell(1, startCol, 1, endCol, true).string(title); });
这段代码会生成你期望的效果:
- 第一个元素
AA对应sheet.cell(1, 1, 1, 2, true).string('AA') - 第二个元素
BB对应sheet.cell(1, 3, 1, 4, true).string('BB') - 第三个元素
CC对应sheet.cell(1, 5, 1, 6, true).string('CC')
注:excel4node的cell方法支持数字类型的列索引,不需要刻意转成字符串,直接传数字即可正常识别。
内容的提问来源于stack exchange,提问作者user19304185
相关产品推荐
相关产品推荐

