1. Productos
  2.   Hoja de cálculo
  3.   Java
  4.   Apache POI HSSF

Apache POI HSSF

 
 

Biblioteca Java para archivos binarios de Microsoft Excel

La API Java de código abierto permite leer, escribir y convertir hojas de cálculo Excel XLS.

Apache POI HSSF es una implementación Java pura del formato de archivo de Excel '97 (-2007) (BIFF8). La API gratuita de código abierto proporciona funciones para crear, leer, modificar y escribir hojas de cálculo Excel XLS. Los desarrolladores interesados solo en leer datos de hojas de cálculo pueden usar la API del modelo de eventos para satisfacer sus necesidades. Para modificar los datos de la hoja de cálculo, se puede utilizar la API del modelo de usuario. Es importante saber que el sistema del modelo de usuario tiene una mayor huella de memoria que el modelo de usuario de eventos de bajo nivel, pero tiene la gran ventaja de que es mucho más sencillo trabajar con él.

Apache POI HSSF brinda un excelente soporte para funciones adicionales de Excel, como trabajar con hojas y 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.

Previous Next

Introducción a Apache POI HSSF

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-scratchpad</artifactId>
  <version>4.0.0</version>
</dependency>

Cree un libro de trabajo de Excel y agregue hojas a través de las API de Java

La biblioteca de código abierto Apache POI HSSF permite a los desarrolladores de software crear un nuevo libro de trabajo de Microsoft Excel en formato de archivo XLS. Los desarrolladores pueden agregar fácilmente nuevas hojas de trabajo a la colección desde una instancia existente de Workbook. 

Crear un nuevo archivo XLS

// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
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);

API de Java para leer y escribir en un archivo de Excel existente 

Apache POI HSSF permite a los desarrolladores de software acceder y leer datos del libro de trabajo de Microsoft Excel existente. Leer en un archivo es muy simple, primero cree una instancia de libro de trabajo a partir de una hoja de cálculo de Excel y acceda a la hoja deseada. Luego Incremente el número de fila e itere sobre todas las celdas en una fila. Repita estos pasos hasta leer todos los datos. Apache POI HSSF también proporciona funciones para modificar un archivo de Excel existente.

Leer el contenido de la celda a través de Java

// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);

Dibujar formas y agregar imágenes a la hoja de cálculo de Excel

Apache POI-HSSF proporciona funciones para dibujar formas en la hoja de cálculo de Excel. Admite dibujar formas con las herramientas de dibujo de Microsoft Office. Dibuje varias formas, como óvalo, línea, rectángulo y establezca cualquier otro estilo de forma. En Apache POI, las imágenes son parte del dibujo, admitiendo los tipos de imágenes PNG, JPG y DIB en este momento.

Dibujar rectángulo en XLS a través de Java

// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);

Manejo de fuentes y combinación de celdas de hojas de cálculo XLS

Apache POI-HSSF proporciona métodos que permiten a los programadores de Java manejar fuentes en hojas de cálculo de Excel. Podemos crear la fuente, establecer el color, establecer el tamaño, etc. La fuente es una interfaz que proporciona métodos para manejar la fuente. Apache POI-HSSF también permite a los desarrolladores fusionar celdas en una sola celda. Para ello, proporciona métodos que toman los índices de las celdas como argumento y fusionan las celdas en una única celda grande.

Establecer fuente para hoja de cálculo XLS a través de Java

// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);
 Español