Leer archivo de Excel en Java

Haider Ali 12 octubre 2023
  1. Leer un archivo de Excel en Java
  2. Descripción general de la biblioteca APACHE POI
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.

  1. HSSF: la implementación HSSF, 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.
  2. 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.

  1. libro de trabajo: el libro de trabajo es una interfaz que representa el libro de trabajo de Excel. Tiene dos clases, HSSFWorkbook y XSSFWorkbook.

  2. hoja - Como sabemos, la estructura central de un libro de trabajo se conoce como hoja de trabajo. Entonces, una hoja 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 son HSSFSheet y XSSFSheet.

  3. fila - Es una interfaz que representa la fila de una Hoja de Excel. Esta interfaz también es una extensión de la biblioteca java.lang.Iterable. Tiene dos clases, HSSFRow y XSSFRow.

  4. celda - Es una interfaz que representa las celdas en una fila de una Hoja de Excel. También tiene dos clases llamadas HSSFCell y XSSFCell.

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 carpeta lib creada en el paso anterior. Necesitas descargar commons-collections4-4.1.jar, poi-3.17.jar, poi-ooxml-3.17.jar, poi-ooxml-schemas-3.17.jar y xmlbeans-2.6.0.jar

  • Crear ruta para agregar archivos jar

    En este paso, tenemos que crear la ruta para agregar los archivos jar 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 archivos jar haciendo clic en la opción construir ruta. Por último, haremos clic en Aplicar 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.

Autor: Haider Ali
Haider Ali avatar Haider Ali avatar

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

Artículo relacionado - Java Excel