// To get an array of letters from 'a' to 'z' in javascript.
let alphabet = 'abcdefghijklmnopqrstuvwxyz'.split('');
/**
* Converts a spreadsheet column letter to a number. eg. A -> 1
*
* @param {String} str - (required) The spreadsheet column letter to convert to a number.
*
* @returns {(Number|undefined)} The column number or undefined.
*/
function convertLetterToNumber(str) {
if ((typeof str === "string" || str instanceof String) && /^[a-zA-Z]+$/.test(str)) {
str = str.toUpperCase();
let out = 0,
len = str.length;
for (pos = 0; pos < len; pos++) {
out += (str.charCodeAt(pos) - 64) * Math.pow(26, len - pos - 1);
}
return out;
} else {
return undefined;
}
}
convertLetterToNumber("A"); // 1
convertLetterToNumber("b"); // 2
convertLetterToNumber("Ba"); // 53
convertLetterToNumber("dE"); // 109
convertLetterToNumber("ZZZZ"); // 475254
convertLetterToNumber("A"); // 1
convertLetterToNumber("b"); // 2
convertLetterToNumber("Ba"); // 53
convertLetterToNumber("dE"); // 109
convertLetterToNumber("ZZZZ"); // 475254
str = 'z'
n = (str == str.toLowerCase()) ? 96 : 64
result = str.charCodeAt(0) - n
console.log(result);
/**
* Convert a whole number that is more than zero to a spreadsheet column letters. eg. 1 -> A
* Source: https://stackoverflow.com/questions/45787459/convert-number-to-alphabet-string-javascript/45787487
*
* @param {Number} num - (required) The number to convert to a spreadsheet column letter. Must be greater than zero.
*
* @returns {(String|undefined)} The spreadsheet column letter or undefined.
*/
function numToSSColumnLetter(num) {
let columnLetter = "",
t;
while (num > 0) {
t = (num - 1) % 26;
columnLetter = String.fromCharCode(65 + t) + columnLetter;
num = (num - t) / 26 | 0;
}
return columnLetter || undefined;
}
numToSSColumn(0); // undefined
numToSSColumn(1); // A
numToSSColumn(26); // Z
numToSSColumn(-1); // undefined
numToSSColumn(27); // AA
numToSSColumn(475254); // ZZZZ