Crear archivo Excel desde Java con POI
En este ejemplo vamos a crear una hoja Excel desde Java usando la librería POI. Para ello, lo primero es descargarse la librería POI desde su página de descargas http://www.apache.org/dyn/closer.cgi/poi/
Una vez descargada y desempaquetada, tendremos una serie de jars que deberemos añadir a nuestro proyecto Java o a nuestro CLASSPATH. En el momento de escribir este ejemplo, los jar obtenidos eran
- poi-3.0.2-FINAL-20080204.jar
- poi-scratchpad-3.0.2-FINAL-20080204.jar
- poi-contrib-3.0.2-FINAL-20080204.jar
Estando todo preparado, ya podemos escribir nuestro programa Java. Lo primero de todo, es crear lo que en Excel se conoce como un libro de trabajo (workbook). Este será nuestro "Excel".
HSSFWorkbook libro = new HSSFWorkbook();
Un libro de trabajo tiene hojas, así que debermos añadir al menos una hoja
HSSFSheet hoja = libro.createSheet();
A la hoja debemos añadirle las filas que deseemos. Para nuestro ejemplo, nos bastará con una. La numeración empieza en cero.
HSSFRow fila = hoja.createRow(0);
Finalemente, a la fila debemos añadirle la celda/columna que queramos usar. Nuevamente, el índice empieza en cero, pero esta vez admite short y no int.
HSSFCell celda = fila.createCell((short)0);
Una vez que tenemos la celda, ya sólo nos resta escribir en ella lo que queramos: una fórmula, un número, un booleano, un texto, etc. Para ello usaremos los métodos de la celda HSSFCell. En nuestro caso y por se el más complejo, lo haremos para un String. El método setCellValue(String) está obsoleto, así que usaremos el método setCellValue(HSSFRichTextString), que vale para lo mismo pero admite un "texto rico", es decir, con distintas fuentes.
HSSFRichTextString texto = new HSSFRichTextString("hola mundo"); celda.setCellValue(texto);
Listo, ya tenemos una hoja de Excel muy sencilla con un "hola mundo" en la primera celda de la tabla. Sólo nos queda grabar el fichero. Para ello, usamos el método write() del HSSFWorkbook
try { FileOutputStream elFichero = new FileOutputStream("holamundo.xls"); libro.write(elFichero); elFichero.close(); } catch (Exception e) { e.printStackTrace(); }
Y ahora el código completo para este ejemplo de Excel con Java y POI
package com.chuidiang.ejemplos.poi_excel; import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; /** * Ejemplo sencillo de cómo crear una hoja Excel con POI * * @author chuidiang * */ public class EjemploCrearExcel { /** * Crea una hoja Excel y la guarda. * * @param args */ public static void main(String[] args) { // Se crea el libro HSSFWorkbook libro = new HSSFWorkbook(); // Se crea una hoja dentro del libro HSSFSheet hoja = libro.createSheet(); // Se crea una fila dentro de la hoja HSSFRow fila = hoja.createRow(0); // Se crea una celda dentro de la fila HSSFCell celda = fila.createCell((short) 0); // Se crea el contenido de la celda y se mete en ella. HSSFRichTextString texto = new HSSFRichTextString("hola mundo"); celda.setCellValue(texto); // Se salva el libro. try { FileOutputStream elFichero = new FileOutputStream("holamundo.xls"); libro.write(elFichero); elFichero.close(); } catch (Exception e) { e.printStackTrace(); } } }