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.