1function convertLetterToNumber(str) {
2 str = str.toUpperCase();
3 let out = 0, len = str.length;
4 for (pos = 0; pos < len; pos++) {
5 out += (str.charCodeAt(pos) - 64) * Math.pow(26, len - pos - 1);
6 }
7 return out;
8}
9
10convertLetterToNumber("A"); // 1
11convertLetterToNumber("b"); // 2
12convertLetterToNumber("Ba"); // 53
13convertLetterToNumber("dE"); // 109
14convertLetterToNumber("ZZZZ"); // 475254
1str = 'z'
2n = (str == str.toLowerCase()) ? 96 : 64
3result = str.charCodeAt(0) - n
4console.log(result);
1// converts numbers to spreadsheet letter columns eg. 1 -> A
2function numToSSColumn(num){
3 let s = '', t;
4
5 while (num > 0) {
6 t = (num - 1) % 26;
7 s = String.fromCharCode(65 + t) + s;
8 num = (num - t)/26 | 0;
9 }
10 return s || undefined;
11}
12
13numToSSColumn(0); // undefined
14numToSSColumn(1); // A
15numToSSColumn(26); // Z
16numToSSColumn(-1); // undefined
17numToSSColumn(27); // AA
18numToSSColumn(475254); // ZZZZ