Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

leggere excel versione 5.0

9 views
Skip to first unread message

Vero

unread,
Dec 16, 2009, 3:35:57 AM12/16/09
to
Salve a tutti,
come da oggetto avrei biosgno di leggere tramite java un file excel
versione 5.0.
Essendo però una versione molto vecchia non è supportata nè da Jexcel
nè da POI.

Qualcuno ha mai avuto un problema simile?

In alternativa, c'è un modo per poter modificare la versione del file
(sempre tramite codice)?


Grazie

Veronica

michelangelo giacomelli

unread,
Dec 16, 2009, 8:48:46 AM12/16/09
to
Il 16/12/2009 09:35, Vero ha scritto:
> Salve a tutti,
> come da oggetto avrei biosgno di leggere tramite java un file excel
> versione 5.0.
> Essendo per� una versione molto vecchia non � supportata n� da Jexcel
> n� da POI.

>
> Qualcuno ha mai avuto un problema simile?
>
> In alternativa, c'� un modo per poter modificare la versione del file

> (sempre tramite codice)?
>
>
> Grazie
>
> Veronica
Il problema maggiore non � tanto il numero di versione quanto il formato
interno.
c'� una libreria opensource che io ho utilizzato per leggere il formato
di file excel v95 ma mi dicono che riesce a leggere anche la versione
5.0 anche se sul sito non � riportato.
puoi provare.
http://jexcelapi.sourceforge.net/

michelangelo giacomelli

unread,
Dec 16, 2009, 9:21:15 AM12/16/09
to

> Il problema maggiore non � tanto il numero di versione quanto il formato
> interno.
> c'� una libreria opensource che io ho utilizzato per leggere il formato
> di file excel v95 ma mi dicono che riesce a leggere anche la versione
> 5.0 anche se sul sito non � riportato.
> puoi provare.
> http://jexcelapi.sourceforge.net/
no nulla ho fatto una prova e non funziona
se non sei vincolata a java c'� una libreria ruby
http://rubyforge.org/projects/spreadsheet/
che riesce a leggere anche i file formato 5.0 magari puoi fare un
piccola batch che estrae solo i dati che ti servono e li salva il csv o
xls, utilizzare questa libreria � molto semplice.
(dopo averla installata tramite gem, gem install spreadsheet)
ex:

require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'
book = Spreadsheet.open 'file.xls'
sheet1 = book.worksheet 0
sheet1.each do |row|
puts row[0]
end

se trovi qualcosa puro java facci sapere.

Dr.Ugo Gagliardelli

unread,
Dec 16, 2009, 1:18:33 PM12/16/09
to
il 16.12.2009 9.35, Scrive Vero 43502112:

> Salve a tutti,
> come da oggetto avrei biosgno di leggere tramite java un file excel
> versione 5.0.
> Essendo perᅵ una versione molto vecchia non ᅵ supportata nᅵ da Jexcel
> nᅵ da POI.
Ma sei sicura? Io con il poi ci creo (e quindi leggo) anche dei BIFF4.
Magari ho una versione vecchia rispetto alla tua: 3.0.1 FINAL

Vero

unread,
Dec 18, 2009, 3:57:46 AM12/18/09
to
In realtà quello che serve a me è una cosa un po' diversa, in quanto
devo riuscire a leggere il contenuto di un PDF che al suo interno
contiene delle tabelle.
Ho utilizzato due programmi batch che trasformano il PDF sia in TXT
(mantenendo la formattazione del testo) sia in Excel.
Quest'ultimo formato per me sarebbe migliore, ma la versione di excel
prodotta è appunto 5.0.

Ho riprovato anche con la versione del POI suggeritami, ma continua a
darmi errore.


On Dec 16, 3:21 pm, michelangelo giacomelli <michelange...@blu.it>
wrote:
> > Il problema maggiore non è tanto il numero di versione quanto il formato
> > interno.
> > c'è una libreria opensource che io ho utilizzato per leggere il formato


> > di file excel v95 ma mi dicono che riesce a leggere anche la versione

> > 5.0 anche se sul sito non è riportato.


> > puoi provare.
> >http://jexcelapi.sourceforge.net/
>
> no nulla ho fatto una prova e non funziona

> se non sei vincolata a java c'è una libreria rubyhttp://rubyforge.org/projects/spreadsheet/


> che riesce a leggere anche i file formato 5.0 magari puoi fare un
> piccola batch che estrae solo i dati che ti servono e li salva il csv o

> xls, utilizzare questa libreria è molto semplice.

Vero

unread,
Dec 18, 2009, 6:21:36 AM12/18/09
to
Ho fatto delle prove con tutte le versioni del POI, dalla 3.0.0 alla
3.5.


Questo è come leggo il file:

FileInputStream fileIn = new FileInputStream("file.xls");
POIFSFileSystem fs = new POIFSFileSystem(fileIn);


e questo è il dettaglio dell'errore:

java.io.IOException: block[ 32 ] already removed
at org.apache.poi.poifs.storage.BlockListImpl.remove
(BlockListImpl.java:97)
at org.apache.poi.poifs.storage.BlockAllocationTableReader.fetchBlocks
(BlockAllocationTableReader.java:190)
at org.apache.poi.poifs.storage.BlockListImpl.fetchBlocks
(BlockListImpl.java:129)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.processProperties
(POIFSFileSystem.java:410)
at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>
(POIFSFileSystem.java:103)
at test.ReadWriteWorkbook.main(ReadWriteWorkbook.java:51)

On Dec 16, 7:18 pm, "Dr.Ugo Gagliardelli"


<do.not.spam.me.ple...@nettuno.it> wrote:
> il 16.12.2009 9.35, Scrive Vero 43502112:> Salve a tutti,
> > come da oggetto avrei biosgno di leggere tramite java un file excel
> > versione 5.0.

> > Essendo però una versione molto vecchia non è supportata nè da Jexcel

> > nè da POI.

Dr.Ugo Gagliardelli

unread,
Dec 19, 2009, 6:54:49 AM12/19/09
to
il 18.12.2009 12.21, Scrive Vero 38511040:

> Ho fatto delle prove con tutte le versioni del POI, dalla 3.0.0 alla
> 3.5.
>
>
> Questo ᅵ come leggo il file:

>
> FileInputStream fileIn = new FileInputStream("file.xls");
> POIFSFileSystem fs = new POIFSFileSystem(fileIn);
>
>
> e questo ᅵ il dettaglio dell'errore:

>
> java.io.IOException: block[ 32 ] already removed
> at org.apache.poi.poifs.storage.BlockListImpl.remove
> (BlockListImpl.java:97)
> at org.apache.poi.poifs.storage.BlockAllocationTableReader.fetchBlocks
> (BlockAllocationTableReader.java:190)
> at org.apache.poi.poifs.storage.BlockListImpl.fetchBlocks
> (BlockListImpl.java:129)
> at org.apache.poi.poifs.filesystem.POIFSFileSystem.processProperties
> (POIFSFileSystem.java:410)
> at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>
> (POIFSFileSystem.java:103)
> at test.ReadWriteWorkbook.main(ReadWriteWorkbook.java:51)
>
Non saprei, magari file.xls e' corrotto o non e' proprio un file in
formato BIFF. Fidarsi dell'estensione .xls non e' un argomento
abbastanza forte, prova ad aprire il file con qualche altro editor, il
notepad ad esempio, magari scopri che si tratta di un file cvs a cui
qualche burlone ha assegnato l'estensione .xls per imbrogliare
windows., tanto poi excel lo apre lo stesso.

Vero

unread,
Dec 21, 2009, 3:20:59 AM12/21/09
to
On Dec 19, 12:54 pm, "Dr.Ugo Gagliardelli"

<do.not.spam.me.ple...@nettuno.it> wrote:
> il 18.12.2009 12.21, Scrive Vero 38511040:
>
> > Ho fatto delle prove con tutte le versioni del POI, dalla 3.0.0 alla
> > 3.5.
>
> > Questo come leggo il file:

>
> > FileInputStream fileIn = new FileInputStream("file.xls");
> > POIFSFileSystem fs = new POIFSFileSystem(fileIn);
>
> > e questo il dettaglio dell'errore:

>
> > java.io.IOException: block[ 32 ] already removed
> >    at org.apache.poi.poifs.storage.BlockListImpl.remove
> > (BlockListImpl.java:97)
> >    at org.apache.poi.poifs.storage.BlockAllocationTableReader.fetchBlocks
> > (BlockAllocationTableReader.java:190)
> >    at org.apache.poi.poifs.storage.BlockListImpl.fetchBlocks
> > (BlockListImpl.java:129)
> >    at org.apache.poi.poifs.filesystem.POIFSFileSystem.processProperties
> > (POIFSFileSystem.java:410)
> >    at org.apache.poi.poifs.filesystem.POIFSFileSystem.<init>
> > (POIFSFileSystem.java:103)
> >    at test.ReadWriteWorkbook.main(ReadWriteWorkbook.java:51)
>
> Non saprei, magari file.xls e' corrotto o non e' proprio un file in
> formato BIFF. Fidarsi dell'estensione .xls non e' un argomento
> abbastanza forte, prova ad aprire il file con qualche altro editor, il
> notepad ad esempio, magari scopri che si tratta di un file cvs a cui
> qualche burlone  ha assegnato l'estensione .xls per imbrogliare
> windows., tanto poi excel lo apre lo stesso.


Il file è generato con Total PDF Converter partendo da un file pdf.

Veronica

0 new messages