Como convertir índices de columna a letras con Google Apps Script


Un problema que podemos tener a veces cuando programamos en Google Apps Script es que trabajamos con índices de columna pero necesitamos las columnas en notación con letras (por ejemplo cuando queremos construir fórmulas de forma dinámica) y esta conversión no es fácil.

El código que os dejo a continuación se encarga de hacer esa conversión.  Si lo miráis con detenimiento veréis como funciona. Básicamente convierte directamente cada índice con la letra del abecedario que le toca (1-> A, 2-> B, etc...). En el supuesto que el índice sea superior a la letra Z se convertirá lo que se pueda y se generarán las próximas letras de forma cíclica :

function ConvertirIndiceALetra(column, row) 
{
  var temp, letra = '';
  var first_index = String('A').charCodeAt(0);
  var last_index  = String('Z').charCodeAt(0);
  var num_letras  = last_index - first_index;

  while (column > 0) 
  {
    temp   = (column - 1) % num_letras;
    letra  = String.fromCharCode(temp + first_index) + letra;
    column = (column - temp - 1) / num_letras;
  }
  
  return letra + row;
}

Aquí tenéis un ejemplo de como queda:
Tabla de ejemplos de conversión a letras


Espero que os sirva, no vaciléis en hacerme llegar cualquier duda.

No hay comentarios:

Publicar un comentario

Tal vez te interese