Esportazione di enormi dati in XLS in un'applicazione web [chiusa]

3

Sto sviluppando un'applicazione Web in Java / J2EE, in cui dispongo delle funzionalità di esportazione. Ho usato Jasper per lo stesso. Il problema è quando si tenta di esportare un enorme insieme di dati che richiede molto tempo.

Esiste un approccio progettuale per la funzionalità di esportazione in modo che possa migliorare le prestazioni?

Avevo provato l'API JExcel in precedenza e poi mi sono trasferito all'API DynamicJasper.

    
posta Hariharbalaji 02.03.2012 - 12:56
fonte

4 risposte

3

Il modo in cui mi sono avvicinato a un problema simile era la creazione di un servizio separato.

Le richieste di dati excel vengono messe in coda.

Il servizio elabora quindi le richieste e restituisce l'Excel come allegato e-mail, le e-mail di restituzione sono specificate come parte della richiesta iniziale.

Questo ha funzionato in modo impeccabile per noi, e quando le cose si bloccano (ne ho avute solo due), le richieste non vanno perse, semplicemente si accodano.

    
risposta data 02.03.2012 - 13:16
fonte
2

Potresti provare a esportare in .csv, che Excel leggerà felicemente. Ecco come facciamo tutte le nostre esportazioni "excel" nella nostra app web. È molto facile da produrre e non è necessaria una libreria (anche se probabilmente ce n'è una per Java). Inoltre è leggibile dall'uomo.

7 minuti per 25.000 righe straordinariamente lente. Sto parlando che dovrebbe fare di tutto per renderlo così lento lento. Potresti fare alcune metriche per vedere come differisce il tempo tra set di dati di dimensioni diverse. Se vedi che sta diventando progressivamente più lento, potrebbe essere un'indicazione che l'esportatore sta facendo qualcosa come caricare i dati di Excel, aggiungere una riga, salvare nel file ... caricare il file excel, aggiungere un'altra riga, salvare su file, ecc.

    
risposta data 06.03.2012 - 22:49
fonte
1

Lo facciamo usando POI di Apache , ma poiché probabilmente anche Jasper lo usa, non credo che otterrai risultati molto più rapidi utilizzando direttamente POI.

Le esportazioni di grandi dimensioni (come 50000 righe x 15 colonne) richiedono molta memoria, quindi aumentare lo spazio dell'heap è obbligatorio, ma probabilmente lo hai già capito.

Potresti voler provare JExcelAPI . Non ho esperienza con questo, però.

    
risposta data 02.03.2012 - 13:57
fonte
-1

Prova ad usare questo framework:

link

si basa sull'annotazione.

    
risposta data 18.05.2016 - 16:34
fonte

Leggi altre domande sui tag