Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Libreria JExcel API. Errore nella creazione dell'oggetto Workbook

    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

  2. #2

    FILE EXCEL DA USARE

    Ragazzi create un file excel con 3 o 4 righe con i seguenti campi. nome, cognome, data di nascita e peso (number).
    proprio x testare il file che io ho chiamato nomi.xls

  3. #3
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Con quale versione hai salvato il file?

    https://bugzilla.redhat.com/show_bug.cgi?id=780061#c10
    https://bugzilla.redhat.com/show_bug.cgi?id=724443

    In generale sembra di essere un bug, quindi contatterei http://tech.groups.yahoo.com/group/JExcelApi/

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  4. #4
    ho scaricato la versione 2.6.12 di JExcel
    ma che centra red hat? non sto programmando sotto linux, sto da windows

  5. #5
    Guarda che a me funziona perfettamente...
    Cmq anche se non c'entra nulla ti consiglio di spostare il file dentro C:\temp
    a me sembra che quel file excel è per così dire spuro....prova a crearne un'altro.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  6. #6
    shumy che intendi? ti parte il codice che ho postato?
    no allora non capisco che è successo.
    per curiosità mi dici di preciso come hai installato il pacchetto JExcel API ? puo darsi che sbaglio io qualcosa.

    nel caso del file avevi ragione tu, era obsoleto, dava una finestra error di dialogo aprendolo da excel, sarà perchè l'ho creato in open office. ora chiedo al mio collega di crearmene uno da excel di microsoft e ritento.

    mi spieghi i passaggi di installazione di un api? non l'ho mai fatto forse sbaglio quello. non riesco a capire questo errore di indicizzazione

  7. #7
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    L'hai salvato con JExcel?

    Non c'entra il s.o. ma il bug report. Leggilo di nuovo

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  8. #8
    che significa l'hai salvato con JExcel?! ragazzi mettete un soggetto e un complemento oggetto perfavore io gia sto confusissimo. NON HO MAI INSTALLATO UNA LIBRERIA. E' possibile che io abbia sbagliato questo.
    mi ripeto di nuovo:
    non ho idea di cosa voglia dire salvare con JExcel, io ho trovato e scaricato questa libreria che chiamano JExcel API e provato ad installarla su Eclipse, mi sembra che la libreria sia riconosciuta in tutte le sue classi ma purtroppo quando istanzio l'oggetto workbook non funziona.
    non so come spiegarmi meglio, l'errore l'ho postato e il codice pure. se a voi funziona e a me no deve esserci qualche problema di installazione, anche se l'errore mi sembra piu' quello di un indice

  9. #9
    ho letto adesso il report, consiglia di salvare il file con versioni di excel superiori alle 95 o con open office. io sono partito al primo tentativo proprio con file di open office, ma quindi richiede un odt? o un xls salvato con open office?! uff non ci sto capendo niente raga vi prego datemi una guida, spendete una parola in piu' ma aiutatemi a fare un po' di chiarezza sto confusissimo
    grazie

  10. #10
    Io l'ho fatto con JCreator.
    Ho provato anche con eclipse e non ho alcun problema.

    cmq una libreria mica si installa....si mette in una specifica path e poi si dice al compilatore dove può andare a prendere la libreria in oggetto...

    Spiega passo per passo cosa hai fatto...anche se il problema a parer mio non dipende dalla libreria che non trova bensì da un errata formattazione/creazione del tuo documento excel.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.