Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    8

    [JAVA] scrivere su file excel

    Salve a tutti, il mio problema è questo :

    devo andare a scrivere in una cella del file excel un numero float ma durante l'esecuzione del progetto mi da un errore che non capisco come risolverlo.

    posto qui sotto il codice:

    codice:
    import java.io.*;
    import java.util.*;
    import jxl.*;
    import jxl.read.biff.BiffException;
    import jxl.write.*;
    
    
    public class Write_Jexcel {
    
    public Write_Jexcel() 
        {
            
        }
        
        public static void main(String[] args) throws IOException, BiffException, WriteException
        {
            String fileName = "C:\\Temp\\anagraficaProva.xls" ;
            Workbook workbook = Workbook.getWorkbook(new java.io.File(fileName));
            WritableSheet s = (WritableSheet) workbook.getSheet(0);     // va in errore qui
            writeSheet(s);
            
        }
        
        private static void writeSheet(WritableSheet s) throws WriteException
        {
            WritableCellFormat cf2 = new WritableCellFormat(NumberFormats.FLOAT);
            jxl.write.Number num = new jxl.write.Number(15, 1, 3.14, cf2);
            s.addCell(num);
        }
        
    }
    L'errore che mi dà è il seguente:

    Exception in thread "main" java.lang.ClassCastException: jxl.read.biff.SheetImpl

    EDIT: sto utilizzando la libreria jxl.

    GRAZIE A TUTTI PER GLI EVENTUALI AIUTI

    8rebel6

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] scrivere su file excel

    Originariamente inviato da 8rebel6
    Workbook workbook = Workbook.getWorkbook(new java.io.File(fileName));
    WritableSheet s = (WritableSheet) workbook.getSheet(0); // va in errore qui

    L'errore che mi dà è il seguente:

    Exception in thread "main" java.lang.ClassCastException: jxl.read.biff.SheetImpl
    Non conosco la JXL nei dettagli ma da una (velocissima) lettura del javadoc e dei sorgenti si deduce che:

    getSheet() di Workbook ritorna un Sheet, non WritableSheet. Quindi sai solo che l'oggetto ritornato sicuramente è-un Sheet. L'oggetto reale "potrebbe" tecnicamente essere un WritableSheet (che è una sottointerfaccia di Sheet) ma non è detto. Infatti SheetImpl (che è la classe del "vero" oggetto istanziato e ritornato) implementa solamente Sheet e non WritableSheet.

    Quindi posso solo dedurre che quello non è il modo giusto per ottenere un WritableSheet.

    Andando per "logica" e leggendo il javadoc, deduco che si debba creare un WritableWorkbook che infatti ha il getSheet() che ritorna un WritableSheet.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2008
    Messaggi
    8

    Re: Re: [JAVA] scrivere su file excel

    Originariamente inviato da andbin
    Non conosco la JXL nei dettagli ma da una (velocissima) lettura del javadoc e dei sorgenti si deduce che:

    getSheet() di Workbook ritorna un Sheet, non WritableSheet. Quindi sai solo che l'oggetto ritornato sicuramente è-un Sheet. L'oggetto reale "potrebbe" tecnicamente essere un WritableSheet (che è una sottointerfaccia di Sheet) ma non è detto. Infatti SheetImpl (che è la classe del "vero" oggetto istanziato e ritornato) implementa solamente Sheet e non WritableSheet.

    Quindi posso solo dedurre che quello non è il modo giusto per ottenere un WritableSheet.

    Andando per "logica" e leggendo il javadoc, deduco che si debba creare un WritableWorkbook che infatti ha il getSheet() che ritorna un WritableSheet.
    Il problema del WritableWorkbook è che mi crea un nuovo file excel, ma io già ce l'ho...
    io dovrei andare a prendere il mio file excel ed andare ad aggiungere in una cella un num float.

    sono bloccato a questo punto...

  4. #4

    File Excel già esistenti

    io accuso lo stesso problema...

    tramite il tutorial della JXL viene spiegato molto esaustivamente come creare dei file excel, ma non viene assolutamente spiegato come e se sia possibile scivere in file excell già esistenti.

    Come hanno già fatto notare il problema più grosso sembrerebbe l'impossibilità di istanziare un jxl.write.WritableWorkbook partendo appunto da un java.io.File, cosa che invece è possibile per istanziare un jxl.Workbook che però non essendo "writable" non da accesso a tutti i metodi per inserire contenuti.

    se qualcuno dovesse conoscere un modo per aggirare o risolvere il problema glie ne saremmo molto grati.
    Un uomo che non ha mai avuto una nevrosi non sa cosa vuol dire la sofferenza

    - Henry Miller

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.