Apache POI-XSSF
API Java de código abierto para archivos XLSX de Microsoft® Excel
Cree, edite y convierta hojas de cálculo Excel XLSX a formatos de archivo CSV y HTML a través de la biblioteca Java.
¿Qué es Apache POI-XSSF?
Apache POI-XSSF es una implementación Java pura del formato de archivo XLSX de Excel 2007. La API proporciona procedimientos para crear, leer, modificar y escribir archivos Excel XLSX. Proporciona estructuras de bajo nivel para personas con necesidades especiales. También proporciona una API de modelo de eventos para un acceso eficiente de solo lectura, así como una API de modelo de usuario completo para crear, leer y modificar archivos XLSX. Apache POI-XSSF proporciona un excelente soporte para funciones adicionales de Excel, como trabajar con hojas, fórmulas, crear estilos de celda rellenando colores y bordes, fuentes, encabezados y pies de página, formas, validaciones de datos, imágenes, hipervínculos y mucho más.
Primeros pasos con Apache POI XSSF
En primer lugar, debe tener instalado el kit de desarrollo de Java (JDK) en su sistema. Si ya lo tiene, vaya a la página de descarga de Apache POI para obtener la última versión estable en un archivo. Extraiga el contenido del archivo ZIP en cualquier directorio desde donde se puedan vincular las bibliotecas requeridas a su programa Java. ¡Eso es todo!
Hacer referencia a Apache POI en su proyecto Java basado en Maven es aún más simple. Todo lo que necesita es agregar la siguiente dependencia en su pom.xml y dejar que su IDE obtenga y haga referencia a los archivos Jar de POI de Apache.
Dependencia de Apache POI Maven
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
Cree hojas de cálculo de Excel grandes usando la API de Java
Apache POI XSSF ofrece poca memoria a través de la API SXSSF para manejar la escritura de datos de gran tamaño en archivos de MS Excel. Esto permite escribir archivos muy grandes sin quedarse sin memoria, ya que solo una parte configurable de las filas se mantiene en la memoria en un momento dado. POI-SXSSF logra su bajo consumo de memoria al limitar el acceso a las filas que se encuentran dentro de una ventana deslizante, mientras que XSSF brinda acceso a todas las filas del documento. Las filas más antiguas que ya no están en la ventana se vuelven inaccesibles, ya que se escriben en el disco. Puede crear un gran archivo de Excel en Java siguiendo los siguientes pasos
Crear archivo de Excel grande usando Java
- Cree un nuevo SXSSFWorkbook y mantenga 100 filas en la memoria; las filas que excedan se eliminarán en el disco
- Cree una nueva hoja de trabajo usando el método createSheet()
- Inserte datos en 2000 filas y 2000 celdas usando createRow(), createCell() y setCellValue("Sus datos") dentro y un bucle anidado
- Guarde el archivo usando FileOutputStream () y pase el nombre del archivo de salida
- Escriba en el archivo usando el método SXSSFWorkbook.Write() y pase FileOutputStream como parámetro
Crear un archivo de Excel grande
// create a new SXSSFWorkbook
SXSSFWorkbook wb = new SXSSFWorkbook(100);
Sheet sh = wb.createSheet();
// insert 2000 rows
for(int rownum = 0; rownum < 2000; rownum++){
Row row = sh.createRow(rownum);
// insert data in 20000 cells
for(int cellnum = 0; cellnum < 10; cellnum++){
Cell cell = row.createCell(cellnum);
cell.setCellValue("Row Number: "+ rownum + " Cell Number: "+ cellnum);
}
}
// save file
FileOutputStream out = new FileOutputStream("LargeDcument.xlsx");
wb.write(out);
out.close();
API de Java para la creación de libros de Excel y adición de hojas
Apache POI XSSF permite a los programadores de computadoras crear un nuevo libro de trabajo de Excel en formato de archivo XLSX. Una vez que los desarrolladores crean el libro de trabajo, las hojas de trabajo se crean a partir de una instancia existente del libro de trabajo y la hoja recién creada se agrega automáticamente en secuencia al libro de trabajo.
Crear libro de Excel y agregar hojas
// create a new XLSX file
Workbook workbook = new XSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXlsx.xlsx");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new sheet
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
Convierta una hoja de cálculo de Excel a CSV y otro formato de archivo
Los desarrolladores y programadores de Java pueden convertir fácilmente una hoja de cálculo de Excel en un formato de archivo CSV utilizando la API Apache POI XSSF. CSV significa valores separados por comas y es un formato muy común utilizado para intercambiar datos entre muchas aplicaciones. En primer lugar, los desarrolladores deben leer el archivo XLS de entrada mediante la API de Apache POI XSSF y luego escribir la información extraída en archivos CSV.
Convertir XLSX a CSV
// Open and existing XLSX file
FileInputStream fileInStream = new FileInputStream("LargeDocument.xlsx");
XSSFWorkbook workBook = new XSSFWorkbook(fileInStream);
XSSFSheet selSheet = workBook.getSheetAt(0);
// Loop through all the rows
Iterator rowIterator = selSheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
// Loop through all rows and add ","
Iterator cellIterator = row.cellIterator();
StringBuffer stringBuffer = new StringBuffer();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
if (stringBuffer.length() != 0) {
stringBuffer.append(",");
}
stringBuffer.append(cell.getStringCellValue());
}
System.out.println(stringBuffer.toString());
}
workBook.close();
Mejora XSSF para encabezados y pies de página
Apache POI XSSF tiene la capacidad de manejar encabezados y pies de página de la primera página, así como encabezados y pies de página pares/impares. Los encabezados y pies de página son una parte muy importante de una hoja de cálculo de Excel. Por lo general, contiene información adicional, como fechas, números de página, nombre del autor y notas al pie, que ayudan a mantener organizados los documentos más largos y facilitar su lectura. Todos los indicadores de propiedad de encabezado/pie de página se pueden manejar en XSSF. El encabezado y el pie de página impares son el encabezado y el pie de página predeterminados. Se muestra en todas las páginas que no muestran un encabezado de primera página o un encabezado de página par.
Fusión de celdas y extracción de texto dentro de archivos Excel XLSX
Apache POI XSSF proporciona la capacidad que permite a los programadores de Java fusionar varias celdas en una sola celda dentro de una hoja de cálculo de Excel. Ha incluido métodos que toman índices de celdas como argumento y fusionan las celdas en una sola celda grande. Una de las funciones más exigentes es la capacidad de extraer texto de un archivo XLSX y usarlo según sus necesidades. Apache POI ha proporcionado extracción de texto básica para todos los formatos de archivo compatibles con el proyecto. Para las necesidades avanzadas de extracción de texto, incluida la extracción de texto enriquecido (como el formato y el estilo), junto con la salida XML y HTML, Apache POI trabaja en estrecha colaboración con Apache Tika para ofrecer analizadores Tika potenciados por POI para todos los formatos de archivo compatibles con el proyecto.