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

Muchas gracias. Me ha servido de mucho!!
De nada, espero pronto importar mis post anteriorea para que cuenten con más opciones
Saludos
excelente aporte amigo se agradece.
era justo lo que andaba buscando.
ideal si puedes explicar como insertar esto en una tabla.
muchas gracias.
Que bueno que te funcionó, pronto pondré mas cosas con bases de datos
Saludos
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
Gracias men xD, de verdad, ya tenia como hacer esto, pero esta forma tuya esta muy bien explicada y sencilla
thx de verdad
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.
esa es una excepción no capturada, usa try y catch
saludos
y si el excel lo tengo en una URL y no en disco…
que
pasa!!!