Trabajo con Excel en Java: Apache POI y alternativas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Excel en Java: resumen de bibliotecas y ejemplos prácticos

En el desarrollo corporativo con Java, a menudo surge la necesidad de crear, leer y modificar hojas de cálculo de Excel de forma programática. Esto puede incluir la generación de informes, la importación de datos desde sistemas externos o la exportación de resultados de cálculos. En este artículo, revisaremos las principales bibliotecas para trabajar con Excel en Java, sus características y proporcionaremos ejemplos de código claros.



¿Por qué Java y no Python?

A pesar de que nuestro sitio se llama PythonLib, Java sigue siendo uno de los lenguajes más populares para el desarrollo empresarial. Muchas empresas utilizan Java activamente para aplicaciones de servidor, y la integración con Excel es una tarea muy demandada. Comprender cómo trabajar con Excel en Java será útil tanto para desarrolladores principiantes como para los experimentados.



Principales bibliotecas para trabajar con Excel en Java

Existen varias bibliotecas maduras, cada una con sus propias fortalezas:



  • Apache POI — la biblioteca más popular y funcional. Soporta los formatos .xls (HSSF) y .xlsx (XSSF). Permite crear, leer y modificar archivos, admite fórmulas, estilos y gráficos.
  • JExcelApi (jxl) — una biblioteca más ligera, solo compatible con el formato antiguo .xls. Adecuada para tareas simples, pero no ha tenido actualizaciones desde 2009.
  • Apache POI + XSSF/SXSSF — capacidades avanzadas para trabajar con archivos grandes. SXSSF (Streaming) permite procesar millones de filas con bajo consumo de memoria.
  • Docx4j — biblioteca para trabajar con Office Open XML, puede usarse para .xlsx, pero se aplica más a menudo para Word.


Comenzando con Apache POI

Para agregar la biblioteca a un proyecto Maven, añada las siguientes dependencias en pom.xml:



<!-- Para trabajar con .xls (HSSF) --><dependency>    <groupId>org.apache.poi</groupId>    <artifactId>poi</artifactId>    <version>5.2.5</version></dependency>

<!-- Para trabajar con .xlsx (XSSF) --><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>5.2.5</version></dependency>


Si usa Gradle, agregue las líneas en build.gradle:



implementation 'org.apache.poi:poi:5.2.5'implementation 'org.apache.poi:poi-ooxml:5.2.5'


Ejemplo: creación de un archivo Excel con una tabla

Veamos un ejemplo simple de creación de un archivo .xlsx con datos de empleados.



import org.apache.poi.ss.usermodel.*;import org.apache.poi.xssf.usermodel.XSSFWorkbook;import java.io.FileOutputStream;import java.io.IOException;

public class ExcelWriter { public static void main(String[] args) { // Creamos un nuevo libro try (Workbook workbook = new XSSFWorkbook()) { // Creamos una hoja Sheet sheet = workbook.createSheet("Empleados");

// Creamos la fila de encabezado Row headerRow = sheet.createRow(0); String[] columns = {"ID", "Nombre", "Cargo", "Salario"}; for (int i = 0; i < columns.length; i++) { Cell cell = headerRow.createCell(i); cell.setCellValue(columns[i]); // Hacemos el encabezado en negrita CellStyle style = workbook.createCellStyle(); Font font = workbook.createFont(); font.setBold(true); style.setFont(font); cell.setCellStyle(style); }

// Rellenamos con datos Object[][] data = { {1, "Iván Ivanov", "Desarrollador", 150000}, {2, "Petr Petrov", "Analista", 120000}, {3, "Sidor Sidorov", "Gerente", 180000}

Recommendations