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

    Impossibile aprire file di grosse dimensioni con JXL

    Salve a tutti,
    ho questo problema. Devo aprire e leggere un file excel con java e ci riesco perfettamente solo se uso un formato ridotto del file originale che è di 11MB.
    L'errore che ho in esecuzione è il seguente:
    jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.jav a:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:221)
    at GraphCreator.main(GraphCreator.java:49)

    Invece se uso un file di dimensioni ridotte questa eccezione non viene lanciata.
    Qualcuno sa come mai? Devo usare qualche approccio o funzione particolare per aprire il file?

    Queste le funzioni usate per leggere lo sheet:

    String filename = "C:\\Documents and Settings\\prova.xls";
    WorkbookSettings ws = new WorkbookSettings();
    ws.setLocale(new Locale("en", "EN"));
    Workbook workbook = Workbook.getWorkbook(new File(filename),ws);
    Sheet s = workbook.getSheet(0);

    poi leggo il foglio s.

  2. #2

    Re: Impossibile aprire file di grosse dimensioni con JXL

    Originariamente inviato da angeloulivieri
    Salve a tutti,
    ho questo problema. Devo aprire e leggere un file excel con java e ci riesco perfettamente solo se uso un formato ridotto del file originale che è di 11MB.
    L'errore che ho in esecuzione è il seguente:
    jxl.read.biff.BiffException: Unable to recognize OLE stream
    at jxl.read.biff.CompoundFile.<init>(CompoundFile.jav a:116)
    at jxl.read.biff.File.<init>(File.java:127)
    at jxl.Workbook.getWorkbook(Workbook.java:221)
    at GraphCreator.main(GraphCreator.java:49)

    Invece se uso un file di dimensioni ridotte questa eccezione non viene lanciata.
    Qualcuno sa come mai? Devo usare qualche approccio o funzione particolare per aprire il file?

    Queste le funzioni usate per leggere lo sheet:

    String filename = "C:\\Documents and Settings\\prova.xls";
    WorkbookSettings ws = new WorkbookSettings();
    ws.setLocale(new Locale("en", "EN"));
    Workbook workbook = Workbook.getWorkbook(new File(filename),ws);
    Sheet s = workbook.getSheet(0);

    poi leggo il foglio s.
    Forse è un problema di memoria della JVM prova ad impostare nei parametri:
    -Xms<memory_size> memoria iniziale
    -Xmx<memory_size> memoria massima

    dagli tipo 128M iniziale e 1024M massima

  3. #3
    Vanno impostati in Eclipse, nel codice o altrove?

  4. #4
    Originariamente inviato da angeloulivieri
    Vanno impostati in Eclipse, nel codice o altrove?
    In Eclipse nel run configuration sotto Arguments, VM arguments

  5. #5
    Originariamente inviato da DonFrignolo
    In Eclipse nel run configuration sotto Arguments, VM arguments
    Ho scritto:
    -Xms128m
    -Xmx1024m

    nell'area di testo che hai detto. Ma l'errore è sempre lo stesso. mannaggia!

  6. #6
    prova a vedere la riga dove crea l'eccezione, se è sempre la stessa magari c'è qualche problema nel file excel.

    leggendo qua e la nelle documentazioni del jxl ho trovato

    codice:
    // CompoundFile.java
    
        // First verify the OLE identifier
        for (int i = 0; i < IDENTIFIER.length; i++)
        {
          if (data[i] != IDENTIFIER[i])
          {
            throw new BiffException(BiffException.unrecognizedOLEFile);
          }
        }
    
    //The definition of IDENTIFIER can be found in BaseCompoundFile.java
    
      
      /**
       * The identifier at the beginning of every OLE file
       */
      protected static final byte[] IDENTIFIER = new byte[]
        {(byte) 0xd0,
         (byte) 0xcf,
         (byte) 0x11,
         (byte) 0xe0,
         (byte) 0xa1,
         (byte) 0xb1,
         (byte) 0x1a,
         (byte) 0xe1};
    IDENTIFIER dovrebbe essere un identificatore del tipo di dato quindi se non riconosce il dato crea quella eccezione.
    Ho letto anche che molti hanno avuto problemi con Excel2007 ma magari non è il tuo caso.
    Di più non so perchè jxl l'ho usato solo un paio di volte.......dopo di che ho sempre usato apache.poi decisamente meglio.

  7. #7
    Uhmmm..
    sto vedendo quello che dici (i dati sembrano a posto) e mi sono trovato davanti a un altro problem: Excel manco mi riesce ad aprire questo file. Dice che mi taglia il file e dà questo warning:

    ***Questo errore si verifica in genere quando si esegue un tentativo di apertura di un file con più di 65.536 righe o di 256 colonne. In Excel sono supportate al massimo 65.536 righe e 256 colonne di dati per foglio di lavoro. Si possono creare numerosi fogli di lavoro contenenti tale numero di righe e colonne ed è in genere possibile inserirli in una sola cartella di lavoro (file).**

    Solo che il mio lavoro dovrebbe stare su un solo sheet...
    Invece con Apache.poi non avrei questo problema?

  8. #8
    Originariamente inviato da angeloulivieri
    Uhmmm..
    sto vedendo quello che dici (i dati sembrano a posto) e mi sono trovato davanti a un altro problem: Excel manco mi riesce ad aprire questo file. Dice che mi taglia il file e dà questo warning:

    ***Questo errore si verifica in genere quando si esegue un tentativo di apertura di un file con più di 65.536 righe o di 256 colonne. In Excel sono supportate al massimo 65.536 righe e 256 colonne di dati per foglio di lavoro. Si possono creare numerosi fogli di lavoro contenenti tale numero di righe e colonne ed è in genere possibile inserirli in una sola cartella di lavoro (file).**
    Forse è questo il problema.

    Invece con Apache.poi non avrei questo problema?
    Non lo so, magari da errore lo stesso, solo che io mi sono trovato meglio con apache poi che con jxl.

  9. #9
    DANNATO EXCEL!!

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.