Por que a última coluna foi ignorada quando li meu arquivo Excel?

Olá pessoal, boa noite !

Estou lendo a primeira linha do meu arquivo excel, e a última coluna é ignorada ao retornar as células do array (espero 66 colunas, mas estou recebendo 65) na instrução de linha cells = sheet.getRow(linhaAtual). Como eu posso resolver ?

Estou usando o woorkbook da biblioteca jxl, só que dias atrás esse problema não acontecia, mas hoje ocorreu. Não sei se pode ser um rastro/ dica desse problema, mas quando é executado:

sheet = workbook.getSheet(0);

Esses avisos são exibidos no console:

Warning:  Cell BN1 exceeds defined cell boundaries in Dimension record (65x107)
Warning:  Cell BN2 exceeds defined cell boundaries in Dimension record (65x107)
and so on....

Estou deixando o código cortado abaixo usado

        //pega o arquivo Excel
        workbook = Workbook.getWorkbook(stream);
        
        //pega a primeira planilha do arquivo xls
        sheet = workbook.getSheet(0);
        int numeroLinhas = sheet.getRows();
        
        for (int linhaAtual = 0; linhaAtual < numeroLinhas; linhaAtual++) {
            cells = sheet.getRow(linhaAtual);
        }

Alguém pode me ajudar, ficarei muito grato!

Sua planilha tem 66 colunas? Lembre-se que a contagem começa no 0, se você tiver uma planilha com 66 colunas, logo a contagem no código será somente 65 pois se inicia a contagem no 0.

Eae gabriel. Então, quando eu leio a primeira linha, a do cabeçalho, vai retornar pra esse array cells e quando utilizo o length pra retornar o tamanho desse array, em vez de retornar 66, retorna 65, ignorando a última coluna do excel.

Queria saber se é algum bug do próprio excel (pois acho que cada coluna pra ser contabilizada, precisa ter uma borda a direita), ou se é um bug da versão do jar do jxl que utilizo (uso a versão 2.6) ?

Vou anexar aqui uma imagem dele. Como pode analizar, tem 66 colunas, e essa última coluna ‘CLÍNICA_FAMÍLIA’ é ignorada portanto não consigo ler seus valores pra gravar na minha tabela.

Sua planilha tem 65x107 somente de tamanho.

E outra

Tu tá querendo pegar COLUNAS puxando LINHAS o correto seria:

getColumns()

Na verdade são de 0 a 65, são 66 mesmo mano, contei aqui. Só não sei porque aparece que tenho 65, enfim.

Eu fiz dessa maneira int numeroLinhas = sheet.getRows(); , pois fazendo a gravação de cada linha na tabela, aí só passo o array cells para meu método que faz a gravação…

Uma coisa que eu notei, foi que quando eu gero esse relatório, dá esse problema, mas quando eu salvo o excel, não ocorre o problema e contabiliza as 66 colunas…

Cara não to entendendo mais nada, posta teu código completo.