Leer archivo excel en java usando JXL

En alguna ocasión desearemos cargar masivamente datos a nuestra aplicación para guardarlos en la base de datos, lo más común es que nos envíen los datos en un archivo de Excel (XLS) porque es más cómodo para nuestro usuario.

En este caso veremos la forma facil usando la librería JXL que puedes bajar aquí

Para nuestro ejemplo necesitamos una hoja de calculo con datos de ejemplo:

nombre apellido
Ciro Peraloca
Mickey Mouse
Pepe Pecas

Agregamos la librería a nuestro proyecto (depende de tu IDE) y creamos la clase LeeExcel con el siguiente contenido.

 
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
 
public class LeeExcel {
    public LeeExcel() {
    }
 
    public static void main(String[] args) throws IOException, BiffException {
 
        //Ubicación del archivo XLS
        String archivo="D://Book1.xls";
 
        //Creamos un Workbook para cargar el XLS en memoria 
        Workbook workbook = Workbook.getWorkbook(new File(archivo));
        //Elegimos la primera hoja
        Sheet sheet = workbook.getSheet(0);
        //inicializo el objeto que leerá el valor de la celda
        Cell celdaCurso = null;
        //Este String guardará el valor de la celda
        String valorCeldaCurso=null;
 
        //Obtengo el número de filas ocupadas en la hoja
        int rows=sheet.getRows();
        //Obtengo el número de columnas ocupadas en la hoja
        int cols=sheet.getColumns();
 
        //Para efectos de ejemplo recorremos las columnas de cada fila
        for(int x=0;x<rows;x++){
            for(int y=0; y<cols; y++){
                //Obtenemos el valor de la celda de la columna Y y fila X
                celdaCurso= sheet.getCell(y,x);
                //Obtenemos el valor de la celda
                 valorCeldaCurso= celdaCurso.getContents();
                 System.out.print(valorCeldaCurso+"|");
            }
            System.out.println("");
 
        }
 
        workbook.close();
    }
}

Lo compilamos y a ejecutar nos dará como salida

nombre|apellido
Ciro|Peraloca
Mickey|Mouse
Pepe|Pecas

Dejar un comentario?

10 Comentarios.

  1. agradecido

    Muchas gracias. Me ha servido de mucho!! :razz:

  2. excelente aporte amigo se agradece.
    era justo lo que andaba buscando.

    ideal si puedes explicar como insertar esto en una tabla.

    muchas gracias.

  3. hola kiciera saber porke me dice ke no encuentra mi archivo ia intente de esta forma perlo me dice ke no puede encontrarlo. alguien sabe que es?

    //Ubicación del archivo XLS
    String archivo=”C://MiExcel//bdorigen.xlsx”;

    //Creamos un Workbook para cargar el XLS en memoria
    Workbook workbook = Workbook.getWorkbook(new File(archivo));
    //Elegimos la primera hoja
    Sheet sheet = workbook.getSheet(0);
    //inicializo el objeto que leerá el valor de la celda
    Cell celdaCurso = null;
    //Este String guardará el valor de la celda
    String valorCeldaCurso=null;

    //Obtengo el número de filas ocupadas en la hoja
    int rows=sheet.getRows();
    //Obtengo el número de columnas ocupadas en la hoja
    int cols=sheet.getColumns();

    //Para efectos de ejemplo recorremos las columnas de cada fila
    for(int x=0;x<rows;x++){
    for(int y=0; y<cols; y++){
    //Obtenemos el valor de la celda de la columna Y y fila X
    celdaCurso= sheet.getCell(y,x);
    //Obtenemos el valor de la celda
    valorCeldaCurso= celdaCurso.getContents();
    System.out.print(valorCeldaCurso+"gvhjngvjh");
    }
    System.out.println("");

    }

    workbook.close();
    }
    }

    este es mi codigo

    • Hola rosendo, el problema puede ser la extensión del archivo, prueba usando uno con extensión XLS, si deseas usar la ext XLSX revisa si la librería usada lo soporta, si no, solo actualiza la versión de la librería.

      Saludos

  4. Gracias men xD, de verdad, ya tenia como hacer esto, pero esta forma tuya esta muy bien explicada y sencilla :wink: thx de verdad

  5. Hola, lo primero gracias por tu aporte, lo he probado y funciona, pero ahora lo quiero implementar en un programa, he craedo la clase LeerExcel y desde un programa principal creo un objeto LeerExcel e intento ejecutar el main con LeerExcel.main(Le he quitado los argumentos al main) y me sale el siguiente error al compilar:
    unreported exception java.io.IOException; must be caught or declared to be thrown .
    como lo soluciono?
    gracias por tu tiempo.

  6. y si el excel lo tengo en una URL y no en disco… :mad: que :evil: pasa!!!

Deje un comentario


NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">