ho scaricato e installato l'add-on di JExcel API per la modifica e lettura di file excel in programmi java.
questa classe però mi da errore quando lancia l'oggetto Workbook, non riesce ad istanziarlo
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 68
at java.lang.String.checkBounds(Unknown Source)
at java.lang.String.<init>(Unknown Source)
at jxl.biff.StringHelper.getString(StringHelper.java: 164)
at jxl.read.biff.WriteAccessRecord.<init>(WriteAccess Record.java:56)
at jxl.read.biff.WorkbookParser.parse(WorkbookParser. java:820)
at jxl.Workbook.getWorkbook(Workbook.java:237)
at jxl.Workbook.getWorkbook(Workbook.java:198)
at ludecaExcel.main(ludecaExcel.java:39)
non so se sbaglio io in qualcosa dell'istallazione della libreria o se qualcosa di essa non funziona.
l'errore me lo da sul codice d'esempio dello stesso autore della libreria JExcel, quindi non credo sia un'errore di programmazione.
codice:
import java.io.File;
import java.io.IOException;
import java.util.Date;
import jxl.Cell;
import jxl.DateCell;
import jxl.LabelCell;
import jxl.NumberCell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
/**
* Classe di prova per leggere i campi da un file excel e stamparli a video
* @author Administrator
*
*/
public class ludecaExcel {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Cell nome, cognome, nascita, anni, peso;
String nomeC = "";
String cognomeC = "";
Date nascitaC = null;
int anniC = 0;
Double pesoC = 0.0;//in kg
LabelCell lc;
DateCell dc;
NumberCell nc;
try {
//Apro il file di excel da leggere
Workbook workbook = Workbook.getWorkbook(new File("C:\\Documents and Settings\\Operatore\\Desktop\\nomi.xls"));
//Seleziono il foglio sul quale voglio operare (il primo foglio ha indice 0)
Sheet sheet = workbook.getSheet(0);
//Leggo tutte le righe
int riga = 1;//indice riga, parto da 1 per saltare l'intestazione dei campi
int numeroRighe = sheet.getRows();//calcolo quante righe ci sono nel foglio
//Attento che c'è una riga in più per l'intestazione!
for(int i = 1; i < numeroRighe; i++){
System.out.println(i);
nome = sheet.getCell(0, riga);
lc = (LabelCell)nome;
nomeC = lc.getString();
cognome = sheet.getCell(1, riga);
lc = (LabelCell)cognome;
cognomeC = lc.getString();
nascita = sheet.getCell(2, riga);
dc = (DateCell)nascita;
nascitaC = dc.getDate();
anni = sheet.getCell(3, riga);
nc = (NumberCell)anni;
anniC = (int)nc.getValue();
peso = sheet.getCell(4, riga);
nc = (NumberCell)peso;
pesoC = nc.getValue();
System.out.println("Riga: " + riga + "nome: " + nomeC + "Cognome: " + cognomeC + "Nascita: " + nascitaC + "età: " + anniC + "Peso: " + pesoC);
//passo alla riga successiva
riga++;
}
//Chiudo excel e libero la memoria
workbook.close();
} catch (BiffException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
vi prego aiuto mi serve questa classe per alleggerirmi del lavoro.
GRAZIE INFINITE 
p.s. non consigliatemi Apache POI