Escribir en libro excel existente - POI

En esta entrada se hablará de como poder escribir en un libro excel ya existente, agregando un registro y copiando el estilo de un registro anterior.

Para aplicar esto usaremos la librería POI, librería del cual ya se hiso una introducción en la entrada
Leer excel -POI
Para hacer funcional nuestro ejemplo crearemos las siguientes clases :

1 -ManipularLibros: creada en la entrada de leer excel. Como ya vimos en la entrada de leer excel la esta clase nos permite tomar un libro y cargarlo en un objeto POIFSFileSystem para poder manipularlo, obtener una hoja en específico del libro.

2 - ManipularHoja: Clase que hereda de la clase ManipularLibros. Esta clase nos permite tomar usar la hoja y manipularla por registros y celdas.

3 - EscribirExcel:Clase que hereda de la clase ManipularHoja. Con esta clase le agregaremos registros al libro existente celda por celda y copiando el estilo de la celda que necesitamos.

En la clase ManipularHoja se creó dos métodos que son:
1- cantidadRegistros(): Este método tomara la hoja y revisará los registros y nos retornará la cantidad exacta, como la númeración empieza por cero se hizo 1 + 1.

Exported from Notepad++
public int cantidadRegistros() { int cantidad = 0; Iterator registros = hoja.rowIterator(); while (registros.hasNext()) { cantidad = registros.next().getRowNum() + 1; } return cantidad; }

2- obtenerEstiloCelda(int indiceRegistro, int indiceCelda): Este método nos permite obtener el estilo completo de una celda determinada.
La numeración empieza desde cero.
Exported from Notepad++
public HSSFCellStyle obtenerEstiloCelda(int indiceRegistro, int indiceCelda) { HSSFRow registros = hoja.getRow(indiceRegistro); HSSFCellStyle estilo = registros.getCell(indiceCelda).getCellStyle(); return estilo; }

En la clase EscribirExcel se creó un método escribir(String strArchivoIn, int intIndice), esté método nos permite tomar un libro a partir de la ruta absoluta y el índice la hoja indicada.
Luego creamos una clase principal que contenga el método main con las siguientes líneas:


Exported from Notepad++
public static void main(String arg[]) { EscribirExcel escribe = new EscribirExcel(); escribe.escribir("/home/ariel/blog/fuentesjava/excel-POI/Libro1.xls", 0); }

En esta imagen se mostrará como estaba el libro antes de escribir en el.

En esta imagen se mostrará como estaba el libro después de escribir en el.
Bueno espero les sirva de ayuda y al final encontraran los fuentes.


4 comentarios:

JULIO CESAR dijo...

que tal.
no veo el link para descarga

Ariel O. Barria dijo...

Disculpa amigo, pero aparentemente ese link se canceló por inactividad, en ese tiempo los guardaba con microsoft y perdí esos fuentes, por el momento tengo estos https://github.com/arielb2/read-excel

Veré si puedo hacerlos de nuevo y subirlos, por el momento si tienes una duda me haces saber.

Eduardo dijo...

Wauu lo que necesito. Me podrias ayudar. Gracias de antemano.

Ariel O. Barria dijo...

Claro, enviame un correo. Saludos