정수 값(num)을 통해 Excel의 열 문자를 만드는 소스코드이다.
0 -> A
25 -> Z
26 -> AA
와 같이 return 한다.
convertNumToExcelCol(num) {
const alpCount = 'Z'.charCodeAt(0) - 'A'.charCodeAt(0) + 1
let result = ''
while (num !== -1) {
result = String.fromCharCode('A'.charCodeAt(0) + (num % alpCount)) + result
num = Math.floor(num / alpCount) - 1
}
return result
}
이 코드는 문자가 주어졌을 때, 몇 열까지인지 count를 구하는 소스이다.
아래 코드에서 문자열 변수인 stop이 'A'면 count는 1이고, 'AA'면 count는 27이다.
const alpCount = 'Z'.charCodeAt(0) - 'A'.charCodeAt(0) + 1
let count = 0
for (let i = 0; i < stop.length; i++) {
count += Math.pow(alpCount, stop.length - 1 - i) * (stop.charCodeAt(i) - 'A'.charCodeAt(0) + 1)
}
for (let i = 0; i < count; i++) {
result.push({
id: i + 1,
name: this.convertNumToExcelCol(i)
})
}