Crear archivos Excel desde Java con Apache POI

A menudo se necesita manejar archivos de Microsoft Excel desde una aplicación Java. Puede ser util, por ejemplo, para exportar información tabulada, importar datos, generar informes, etc. Apache POI es una librería de la fundación Apache, que se ha convertido en un estándar de facto para este tipo de tareas. En este artículo veremos un ejemplo de cómo generar un archivo excel sencillo.

Añadir la dependencia al proyecto

Suponiendo que tenemos un proyecto Maven, añadimos la dependencia para apache-poi. En el momento de escribir este artículo, la última versión la 3.12-beta1. Aunque se trate de una versión beta, como es un artículo de demostración, será la versión que usemos:

<dependencies>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.12-beta1</version>
    </dependency>
</dependencies>

Si no usamos Maven, hemos de descargar la librería desde aquí y agregarlas manualmente al proyecto.

Formato del archivo Excel

Tal y como podemos leer en su página web, apache POI provee dos APIs:

  • HSSF: permite generar archivos compatibles con MS Office 97
  • XSSF: permite generar archivos compatibles con MS Office 2007

En este caso, para generar archivos con la máxima compatibilidad posible, usaremos el API HSSF.

Generar libro Excel

La forma de trabajar con Apache POI será siempre la misma:

  1. Crear un libro de trabajo
  2. Crear hojas en el libro de trabajo
  3. Crear filas en las hojas
  4. Crear celdas en las filas
  5. Agregar contenido a las celdas

Vamos a ver cómo se hace esto en código:

1. Crear el libro de trabajo:

HSSFWorkbook workbook = new HSSFWorkbook();


2. Crear una hoja:

HSSFSheet sheet = workbook.createSheet("Mi Hoja");


3. Crear una fila:

HSSFRow row = sheet.createRow(0);


4. Crear una celda:

HSSFCell cell = row.createCell(0);


5. Asignar contenido a la celda:

cell.setCellValue("¡Hola, Mundo!");

 

Guardar el excel generado

Podemos guardar el excel generado en un archivo, simplemente indicando al libro de trabajo un stream de salida:

OutputStream out = new FileOutputStream("src/main/resources/SimpleExcel.xls");
workbook.write(out);

 

Código fuente

Puedes descargar el código fuente de ejemplo utilizado en este artículo desde mi repositorio de GitHub, proyecto Poi-SimpleExcelGenerator.

 

Más información

Apache POI permite asignar estilos, fórmulas, formato, etc. al libro generado. Trataré estos temas en artículos posteriores. Mientras tanto, puedes consultar toda la información desde su documentación oficial (en inglés).

 

4 Replies to “Crear archivos Excel desde Java con Apache POI”

  1. Muy bien explicado como es la estructura para crear un excel.
    Tengo una pregunta ? Es problema es que estoy creando un excel, pero me han pedido que le agregue checkbox he buscado información y no encontrado nada. Me pregunta es tu que sabes acerca de la librería sabes si se pueden crear y leer.

    • Hola Cristina,

      Lo cierto es que nunca he manejado Checkboxs en excels con Apache POI. He estado buscando información y como dices, no hay mucho al respecto. Parece que no es algo trivial. No obstante, sigo investigando, ya que en programación “no hay nada imposible” 😉

      Muchas gracias por comentar y un saludo!

    • Carlos, hasta donde conozco no existe tal limitación. Tendría que tener más detalles del código porque parece que el error no es de POI, sino de otra parte del programa.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*