2009-04-06 39 views
11

¿Cómo puedo importar de manera eficiente datos CSV con Apache POI? Si tengo un archivo CSV muy grande que me gustaría guardar en mi hoja de cálculo de Excel, entonces no creo que ir de celda en celda sea la mejor manera de importar ...?Importación de datos CSV con Apache POI

Respuesta

1

La manera más eficiente de agregar información a su hoja de cálculo de Excel es mediante el uso de una matriz. Este código:

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

rellena la hoja de rango de una matriz de dos dimensiones, donde el límite inferior es 1.

En su situación, me gustaría leer el archivo CSV en una matriz primero, y entonces utilizar la sintaxis como el de arriba para colocarlo en la hoja de trabajo.

Stan de Scott

15

Apache POI nunca fue diseñado para llamar a archivos CSV. Mientras que un archivo CSV se puede abrir en Excel, Excel tiene su propio lector que realiza una importación automática. Esto supone que su CSV tiene el sufijo .csv en lugar del sufijo .txt. Si tiene el sufijo .txt, guárdelo como .csv. Todo lo que tienes que hacer es hacer clic derecho en el CSV y Abrir con Excel. Presto, el CSV se ha importado a Excel.

Supongo que quiere analizar los datos de un archivo txt en el archivo de Excel. Si ese es el caso, le sugiero que use una biblioteca Léxico SuperCSV en lugar de tratar de hacer que un POI haga algo para lo que nunca fue diseñado. Se cargará todo en un Bean, mapa o lista de su elección a medida que analiza los datos y luego puede volver a escribirlos en el formato que elija en un archivo .csv o utilizar un puente JDBC-ODBC o un punto de interés de Apache para escribir directamente en formato .XLS. Agrega un paso adicional, pero luego tiene un control completo de los datos.

SuperCSV lleva la licencia de Apache2, por lo que debería ser buena para todo lo que elija hacer con ella.

O simplemente use la función .split() en java y analice el CSV en matrices y cargue las matrices en .xls con POI.

Cuestiones relacionadas