JavaCSV - Manejar Ficheros CSV (Excel) con Java
Generalmente Java trabaja con bases de datos : se leen unos datos en base de datos, se presentan, el usuario interacciona, son procesados y finalmente se acualiza la base de datos.
Sin embargo también es frecuente importar / exportar los datos de una base de datos a otros formatos ya sea para tener un backup de la información en otro sistema / soporte, o para realizar operaciones complejas ya implementadas por otras herramientas, como las hojas de cálculo, ya sean Office u OpenOffice.
El formato CSV (Comma Separated Values) se utiliza para almacenar datos organizados en columnas, es decir los datos de una tabla. Cada columna se separa por un caracter delimitador que normalmente es la coma (de ahí el nombre del formato), y cada registro (o fila) se separa por un retorno de carro.
Si queremos manejar en Java este tipo de ficheros, podemos utilizar simplemente las clases del paquete java.io.* que manejan ficheros en general.
Sin embargo, podemos encontrar clases para gestionar precisamente ficheros con formato CSV : JavaCSV, una librería de código libre de libre distribución, fácil de aprender a utilizar y que cumple con todas nuestras necesidades. Las dos clases principales son CsvReader y CsvWriter , que se utilizan para leer y escribir respectivamente un fichero CSV.
Un breve ejemplo para volcar unos datos a un fichero CSV podría ser:
CsvWriter writer = new CsvWriter ("informe.csv");
//writer.setDelimiter(';');
try {
writer.write("REFERENCIA");
writer.write("NOMBRE");
writer.write("TITULOPROYECTO");
writer.endRecord();
for (int i=0; i<listadoInformes.size(); i++) {
InformeBean informe = (InformeBean) listadoInformes.get(i);
writer.write (informe.getReferencia());
writer.write (informe.getNombre());
writer.write (informe.getTituloProyecto());
writer.endRecord();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
writer.close();
}