Suponhamos que você esteja trabalhando na geração de uma planilha usando POI ou Jxl ou OdfEasy ( :-) ). Um problema que surge é: como saber qual o nome da coluna 34?
Encontrei uma função feita em C# que, traduzida para o Java, resulta no código abaixo (ei, se encontrarem algum bug na mesma, me passem para que eu a atualize, ok?). E que será utilizada na biblioteca de utilitários do ODF Easy.
// Só por conveniencia (leia preguiça) criei uma matriz contendo todas as letras do alfabeto. // Você é livre para criar uma alternativa mais interessante (com certeza há!) private static String[] letras = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; private static String getColumn(int column) { if (column >= 0 && column < 26) { return letras[column]; } else if (column > 25) { return letras[(column / 26) - 1] + letras[column % 26]; } else return null; }
Nesta caso me parece que vc esta prevendo no máximo duas letrar AA ou AB… mas e nos casos AAB, AAC e assim por diante? seria melhor o segundo return ‘return letras[(column / 26) – 1] + letras[column % 26];’ fizesse uma chamada recursiva…
O limite das planilhas consiste em aproximadamente 255 colunas.
Sendo assim, a última coluna normalmente será sempre IV ou algo similar. Difícilmente chegará a 3 letras.