En esta sección, aprenderemos cómo podemos leer datos de un archivo de Excel.
En Java, leer un archivo de Excel no es similar a leer un archivo de Word debido a las celdas en el archivo de Excel. JDK no proporciona API directa para leer o escribir documentos de Microsoft Excel o Word. Tenemos que confiar en la biblioteca de terceros que es Apache POI.
¿Qué es Apache POI?
PDI de Apache (Implementación de ofuscación deficiente) es una API de Java para leer y escribir documentos de Microsoft en ambos formatos. .xls y .xlsx. Contiene clases e interfaces. La biblioteca de puntos de interés de Apache proporciona dos implementaciones para leer archivos de Excel:
- Implementación de HSSF (formato de hoja de cálculo horrible): Denota una API que funciona con Excel 2003 o versiones anteriores.
- Implementación de XSSF (formato de hoja de cálculo XML): Denota una API que funciona con Excel 2007 o versiones posteriores.
Interfaces y clases en Apache POI
Interfaces
- Libro de trabajo: Representa un Libro de Excel. Es una interfaz implementada por HSSFWorkbook y XSSFWorkbook.
- Hoja: Es una interfaz que representa un Hoja de trabajo de Excel. Una hoja es una estructura central de un libro de trabajo, que representa una cuadrícula de celdas. La interfaz de la hoja se extiende java.lang.Iterable
.
- Hilera: También es una interfaz que representa la hilera de la hoja de cálculo. La interfaz de Row se extiende java.lang.Iterable
. Hay dos clases concretas: HSSFRow y XSSFRow. | - Celda: Es una interfaz. Es una representación de alto nivel de un celda en una fila de la hoja de cálculo. HSSFCell y XSSFCell implementar la interfaz celular.
Clases
Clases XLS
- HSSFWorkbook: Es una clase que representa el archivo XLS.
- Hoja HSSFS: Es una clase que representa la hoja en un archivo XLS.
- HSSFRow: Es una clase que representa una fila en la hoja del archivo XLS.
- HSSFCell: Es una clase que representa una celda en una fila de un archivo XLS.
Clases XLSX
- XSSFWorkbook: Es una clase que representa el archivo XLSX.
- Hoja XSSFS: Es una clase que representa la hoja en un archivo XLSX.
- XSSFRow: Es una clase que representa una fila en la hoja del archivo XLSX.
- XSSFCell: Es una clase que representa una celda en una fila de un archivo XLSX.
Pasos para leer datos de un archivo XLS
Paso 1: Cree un proyecto Java simple en eclipse.
Paso 2: Ahora, cree una carpeta lib en el proyecto.
Paso 3: Descargue y agregue los siguientes archivos jar en la carpeta lib:
Paso 4: Establecer la ruta de la clase:
Haga clic con el botón derecho en el proyecto -> Ruta de compilación -> Agregar archivos JAR externos -> seleccione todos los archivos jar anteriores -> Aplicar y cerrar.
Paso 5: Ahora crea un archivo de clase con el nombre ReadExcelFileDemo y escriba el siguiente código en el archivo.
Paso 6: Cree un archivo de Excel con el nombre «student.xls» y escriba algunos datos en él.
Paso 7: Guarde y ejecute el programa.
Ejemplo de lectura de un archivo de Excel (.xls)
Producción:
Name Age Height Swarit 23.0 5" Puneet 25.0 6'1" Swastik 22.0 5'5" Tejas 12.0 4'9"
Leyendo archivo XLSX
Todos los pasos seguirán siendo los mismos, excepto el formato de archivo.
Mesa: employee.xslx
Ejemplo de lectura de archivo de Excel (.xlsx)
En este ejemplo usamos la clase XSSFWorkbook.
Producción:
Employee ID Employee Name Salary Designation Department 1223.0 Harsh 20000.0 Marketing Manager Marketing 3213.0 Vivek 15000.0 Financial Advisor Finance 6542.0 Krishna 21000.0 HR Manager HR 9213.0 Sarika 34000.0 Sales Manager Sales
Leer un valor de celda en particular de un archivo de Excel (.xlsx)
Mesa: EmployeeData.xlsx
Ejemplo
En el siguiente ejemplo, leemos el valor de 2Dakota del Norte fila y el 2Dakota del Norte columna. El recuento de filas y columnas comienza desde 0. Por lo tanto, el programa devuelve «Software Engineer».
Producción: