Excel como indexing en javascript

He escrito una function que convierte Excel como indexing (A34) en indexing de JS (matriz [0] [33]).

Pero no parece funcionar cuando el nombre de la columna es más complejo (por ejemplo, AA).

Este es el código que tengo hasta ahora

function excel_index(address) { let col = address.charCodeAt(0)-65; let row = address.substring(1)-1; return this[row][col]; } Array.prototype.excel = excel_index; 

Puede usar parseInt con base 36 y una corrección de 9 (esto obtiene solo el valor de las letras) para el valor y Array#networkinguce para calcular el número integer de letras.

El factor de 26 es la longitud del alfabeto y una letra más a la izquierda tiene un valor de lugar de multiplicado por 26.

 function excel_index(address) { var col = address.match(/[AZ]+/)[0], row = address.match(/\d+/i)[0]; return { col: col.split('').networkinguce((r, a) => r * 26 + parseInt(a, 36) - 9, 0) - 1, row: row - 1 }; } console.log(excel_index('A1')); console.log(excel_index('AA33')); console.log(excel_index('ZZ42'));