2009-04-06 15 views
11

Come posso importare in modo efficiente i dati CSV con il POI Apache? Se ho un file CSV molto grande che vorrei memorizzare nel mio foglio di calcolo Excel, allora non immagino che andare cell-by-cell sia il modo migliore per importare ...?Importazione di dati CSV con POI Apache

risposta

1

Il modo più efficace per aggiungere informazioni al foglio di calcolo di Excel è utilizzare un array. Questo codice:

Sheets(1).Range("A1").Resize(uBound(myArray),uBound(myArray,2)).Value = myArray 

popola la gamma di lastre da una matrice bidimensionale, dove il limite inferiore è 1.

Nella tua situazione, avrei letto il file CSV in un array prima, e utilizzare la sintassi POI come sopra per posizionarlo sul foglio di lavoro.

Stan Scott

15

Apache POI è mai stato progettato per chiamare il file CSV. Mentre un file CSV può essere aperto in Excel, Excel ha il proprio lettore che esegue un'importazione automatica. Questo presuppone che il tuo CSV abbia il suffisso .csv invece del suffisso .txt. Se ha il suffisso .txt, salvalo come .csv. Tutto quello che devi fare è fare clic con il pulsante destro del mouse su CSV e Apri con Excel. Presto, il CSV è stato importato in Excel.

Suppongo che si desideri analizzare i dati da un file txt nel file Excel. In tal caso, ti suggerisco di utilizzare una libreria LIKe SuperCSV invece di cercare di ottenere che il POI esegua qualcosa che non è mai stato progettato. Lo caricherà tutto in un bean, mappa o elenco a scelta mentre analizza i dati e quindi potrai riscriverli nel formato che hai scelto in un file .csv o utilizzare un bridge JDBC-ODBC o un POI Apache per scrivere direttamente nel formato .XLS. Aggiunge un passaggio in più, ma poi hai il controllo completo dei dati.

SuperCSV ha la licenza Apache2, quindi dovrebbe essere buono per qualsiasi cosa tu scelga di fare con esso.

O semplicemente utilizzare la funzione .split() in java e analizzare il CSV in array e caricare gli array in .xls con POI.