/**
* 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