Excel中的列表是用字段表示的,比如: A1代表列=1,行=1
可利用JS的parseInt方法,直接转换化26进制的数,首先要将字母部分转化成俯0~9开始的26进度字符串即可。
const getRowAndCol = (cell) => {
let col26 = ''
let codeA = 'A'.charCodeAt(0)
cell.replace(/[0-9]/g, '').toUpperCase().split('').forEach(char => {
const code = char.charCodeAt(0)
const minus = code - codeA + 1
if (minus > 9) {
col26 += String.fromCharCode(code - 9)
} else {
col26 += minus.toString()
}
})
const row = parseInt(cell.replace(/[^0-9]/ig, ''))
const col = parseInt(col26, 26)
return { col, row }
}
运行结果:
getRowAndCol('A1')
{col: 1, row: 1}
getRowAndCol('AAU1')
{col: 723, row: 1}
回复 (0)
微信扫码 立即评论