Olá, galera...
Eu estou armazenando dados de uma tabela do excel em um vetor, mas esta dando erro.
Alguém sabe o que são esses erros ?
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3001
at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:356)
abaixo esta parte do programa...
try{Workbookworkbook=Workbook.getWorkbook(newFile("C:/Documents and Settings/....xls"));Sheetsheet=workbook.getSheet(0);Filearquivo=newFile("C:/Documents and Settings/....xls");FileReaderleitura;leitura=newFileReader(arquivo);BufferedReaderler=newBufferedReader(leitura);inti=1;while(ler.readLine()!=null){Cella2=sheet.getCell(0,i);Stringas2=a2.getContents();DATA[i]=as2;System.out.println("Data["+i+"] : "+DATA[i]);i++;}workbook.close();}catch(IOExceptione){e.printStackTrace();}catch(BiffExceptione){e.printStackTrace();}
[list]Array = Vetor[/list]
[list]Index = Índice[/list]
[list]Out of Bounds = Fora dos Limites[/list]
[list]Exception = Exceção[/list]
Ou seja, você está tentando acessar um índice que não existe!
fernandosavio
Provavelmente é no vetor DATA[] que está dando problema…
M
mcarabolante
fernando, você não leu o
at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:356) e o at aaa.main(aaa.java:98 )
Destronoyzer, seu código está estranho, você está fazendo um loop baseado na quantidade de linhas que um arquivo excel tem, porém, a não ser que ele seja um csv ele não funciona exatamente assim
Eu acho que o problema está na linha :
while(ler.readLine()!=null)
Você teria que usar alguma funçao da proprio classe Sheet para fazer o loop, no POI da Apache tem a função sheet.getPhysicalNumberOfRows(), que pega a quantidade de colunas do excel e fazer uma iteração com as linhas
fernandosavio
Opa… Foi mal.
Falha no engano…
D
Destronoyzer
Consegui !!!
Muito obrigado pelo ajuda...
O erro do programa abaixo esta na linha 20, i++.
Mas se eu retirar ele, eu fico com outro problema.
Pesquisei o que vc falou mcarabolante e encontrei uma forma de saber a primeira e a ultima linha do excel. Vou usar isso...
OIFSFileSystemfs=newPOIFSFileSystem(newFileInputStream("C:/Documents and Settings/aaa.xls"));HSSFWorkbookwb=newHSSFWorkbook(fs);HSSFSheetsheet5=wb.getSheetAt(0);INTERVALO_INICIO=sheet5.getFirstRowNum();INTERVALO_FIM=sheet5.getLastRowNum();for(inti=INTERVALO_INICIO;i<=INTERVALO_FIM;i++)...