Leer archivo de Excel en Java
Este artículo brinda la información necesaria para leer un archivo de Excel en el programa Java. ¿Qué programa usar? Qué pasos seguir y, por último, pero no menos importante, cómo aplicar las bibliotecas para que el usuario pueda leer el archivo de Excel. Entonces, comencemos.
Leer un archivo de Excel en Java
En Java, leer un archivo de Excel no es tan fácil como otros formatos de archivo, como Microsoft Word. Sin embargo, se puede entender fácilmente por qué, ya que las hojas de Excel contienen celdas.
JDK (Java Development Kit
) no permite al usuario manejar archivos como Microsoft Excel y Microsoft Word. Además, no proporciona al usuario la API requerida, por lo que no tenemos más remedio que confiar en bibliotecas de terceros para realizar nuestras tareas.
Para leer un archivo de Excel en Java, tendríamos que aprender sobre la biblioteca APACHE POI
porque puede funcionar tanto para formularios .xls
como .xlsx
.
Descripción general de la biblioteca APACHE POI
La biblioteca, APACHE POI
, también conocida como Implementación de ofuscación deficiente, proporciona al usuario dos implementaciones. Uno es HSSF
, y el otro es XSSF
.
HSSF
: la implementaciónHSSF
, Horrible Spread Sheet Format, denota al usuario con una API que funciona para versiones anteriores de Microsoft Excel, más específicamente Excel 2003 y anteriores.XSSF
-XSSF
, formato de hoja de cálculo XML, la implementación denota al usuario con una API que funciona para versiones posteriores de Microsoft Excel. En este caso, es para las versiones de Excel 2007+. También podemos usar esta implementación para trabajar con el formato.xlsx
.
Veamos sus interfaces y clases para comprender mejor su trabajo.
Interfaces y Clases
Tenga en cuenta que todas las interfaces mencionadas a continuación funcionan tanto para HSSF
como para XSSF
.
-
libro de trabajo
: ellibro de trabajo
es una interfaz que representa el libro de trabajo de Excel. Tiene dos clases,HSSFWorkbook
yXSSFWorkbook
. -
hoja
- Como sabemos, la estructura central de un libro de trabajo se conoce como hoja de trabajo. Entonces, unahoja
es una interfaz que representa la hoja de cálculo de Excel.Es una extensión de la biblioteca
java.lang.Iterable
. Las dos clases para esta interfaz sonHSSFSheet
yXSSFSheet
. -
fila
- Es una interfaz que representa lafila
de una Hoja de Excel. Esta interfaz también es una extensión de la bibliotecajava.lang.Iterable
. Tiene dos clases,HSSFRow
yXSSFRow
. -
celda
- Es una interfaz que representa las celdas en unafila
de una Hoja de Excel. También tiene dos clases llamadasHSSFCell
yXSSFCell
.
Veamos los pasos para leer un archivo de Excel ahora que sabemos qué contiene la biblioteca APACHE POI
y qué interfaces y clases podemos usar.
Pasos para leer un archivo de Excel en Java
Estos pasos son sencillos de seguir.
-
Crear una carpeta
lib
Cree una carpeta llamada
lib
en el proyecto Java que el usuario usará para abrir y leer el archivo de Excel. -
Descargar archivos
jar
Este paso requiere que el usuario descargue algunos archivos
jar
en la carpetalib
creada en el paso anterior. Necesitas descargarcommons-collections4-4.1.jar
,poi-3.17.jar
,poi-ooxml-3.17.jar
,poi-ooxml-schemas-3.17.jar
yxmlbeans-2.6.0.jar
-
Crear ruta para agregar archivos
jar
En este paso, tenemos que crear la
ruta
para agregar los archivosjar
que descargamos en el paso anterior. Para hacer eso, haga clic derecho en un proyecto Java que creamos en el paso 1.Luego construiremos nuestra
ruta
para los archivosjar
haciendo clic en la opciónconstruir ruta
. Por último, haremos clic enAplicar y cerrar
tras añadir los archivos ‘jar’ externos. -
Crear una clase de Java
Cree un archivo de clase Java en este paso, y luego podemos llamar a nuestro archivo de Excel deseado para leer los datos. Este es un ejemplo de un archivo de clase que lee un archivo de Excel.
El
XSSF
se usará en este ejemplo ya que usa versiones de Excel 2007+.import java.io.File; import java.io.FileInputStream; import java.util.Iterator; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Example { public static void main(String[] args) { try { File ExcelFile = new File("D:\\your_filename.xlsx"); // obtaining bytes from the file FileInputStream FileStream = new FileInputStream(ExcelFile); // using the Workbook interface XSSFWorkbook ExcelWorkbook = new XSSFWorkbook(FileStream); // using the sheet class to get the object XSSFSheet ExcelSheet = ExcelWorkbook.getSheetAt(0); // iterating over excel file, rows. Iterator<Row> IterateRows = ExcelSheet.iterator(); while (IterateRows.hasNext()) { Row ExcelRow = IterateRows.next(); // iterating over the column Iterator<Cell> IterateCells = ExcelRow.cellIterator(); while (IterateCells.hasNext()) { Cell ExcelCell = IterateCells.next(); switch (ExcelCell.getCellType()) { case Cell.CELL_TYPE_STRING: // represents string cell type System.out.print(ExcelCell.getStringCellValue() + "\t"); break; case Cell.CELL_TYPE_NUMERIC: // represents number cell type System.out.print(ExcelCell.getNumericCellValue() + "\t"); break; default: } } System.out.println(""); } } catch (Exception exp) { exp.printStackTrace(); } } }
Usando este código de ejemplo, podemos entender fácilmente cómo usar la biblioteca APACHE POI
. El resultado de este código de ejemplo serán los datos del archivo de Excel que proporcionará el usuario.
Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.
LinkedIn