SoloCodigo

Programación General => Java => Mensaje iniciado por: Antonio_Almeria en Martes 4 de Diciembre de 2007, 20:00

Título: Leer Hojas Excel Con Java
Publicado por: Antonio_Almeria en Martes 4 de Diciembre de 2007, 20:00
Hola a tod@s: estoy haciendo mi proyecto fin de carrera y una parte importante del mismo es leer unos datos desde una hoja de calculo Excel. Alguien sabria como hacerlo?
He estado mirando por internet y esto es lo q he encontrado:

-----------------------------------------------------------------------------------
public class HSSF1
{
private HSSFWorkbook workbook=new HSSFWorkbook();
private FileInputStream inputfile;
private FileOutputStream outputfile;

public HSSF1(){}

/*

Creamos el workbook que sirve para leer el excel, le pasamos un parametro que es la path completo de donde se encuentra en excel

*/
public HSSFWorkbook getWorkbook(String s){

try{
inputfile=new FileInputStream(s);
workbook=new HSSFWorkbook(inputfile);
}catch(Exception e ){
System.out.println("error!!!!!!!!!!!!!!!!"+e.getMe ssage());
}
return workbook;
}

}

/*

Clase que lee el excel

*/

public class comActionLeerExcel extends Action
{
private static Logger logger = Logger.getLogger(comActionCrearExcel.class.getName ());

public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
try{

HSSF1 example = new HSSF1();

/* creamos un HSSFWorkbook con nuestro excel */
HSSFWorkbook xls=example.getWorkbook("C://kerman.xls");

/* Elegimos la hoja que queremos leer del excel */
HSSFSheet sheet=xls.getSheetAt(0);

/* Nos recorremos las filas */
for (int j=9; j<17;j++){

/* Cogemos una fila HSSFRow row=sheet.getRow(fila);*/
HSSFRow row=sheet.getRow(j);

HSSFCell cell;
int tipo;

String s="";

/* cogemos la celda que deseamos cell=row.getCell((short)celda);
cell=row.getCell((short)1);

switch(cell.getCellType()){

case cell.CELL_TYPE_FORMULA:
s =s+ cell.getNumericCellValue();
Double amount = new Double(s);
NumberFormat numberFormatter;
numberFormatter = NumberFormat.getNumberInstance();
s = numberFormatter.format(amount);
break;

case cell.CELL_TYPE_NUMERIC:
s=s+cell.getNumericCellValue();
Double amounts = new Double(s);
NumberFormat numberFormatters;
numberFormatters = NumberFormat.getNumberInstance();
s = numberFormatters.format(amounts);
break;

}
System.out.println("s"+s);
s="";
}


HSSFRow row=sheet.getRow(17);
Date p=null;
HSSFCell cell=row.getCell((short)1);
p=cell.getDateCellValue();
SimpleDateFormat formatDate = new SimpleDateFormat("dd-MM-yyyy");
String fecha = formatDate.format(p);
System.out.println("p"+ fecha);

return (mapping.findForward("exito"));

}catch(Exception e){
request.setAttribute("exception",e);
return(mapping.findForward("error"));
}
}
}o la implementacion de la lectura del excel
-----------------------------------------------------------------------------------


pero por ejemplo necesito la libreria jxl.jar y no se donde tengo q ponerla utilizando el jbuilder X. Si alguien tiene alguna idea estaria de lujo, asias a todos.

Antonio J. gonzalez lazaro
yallegaantonio@hotmail.com (por si alguien quiere exarme una manilla)
Título: Re: Leer Hojas Excel Con Java
Publicado por: Masiosare en Miércoles 5 de Diciembre de 2007, 01:59
Pues la dirección donde pongas ese archivo .JAR podrías darla como "CLASSPATH" cuando llames al java runtime o al JVM, o sea, usando solo el símbolo de sistema, si no me equivoco, sería mas o menos así:

Código: Text
  1. java -cp %ubicaciondelarchivojar%;%direcciondetuclase% %nombredetuclase%
  2.  

%ubicaciondelarchivojar% es la ruta donde está el archivo JAR incluyendo nombre y extención, %direcciondetuclase% es la direccion de tu programa (o clase), y al ultimo el nombre de tu clase, no necesita extencion aunque puedes ponerla.

El Jbuilder lo que hace, según recuerdo, es automatizar los comandos del símbolo de sistema que compilan y ejecutan los codigos, (las llamadas a los programas del JDK y el runtime) pero no se con exactitud como configurarlo para que use determinados CLASSPATH.

aca un poco más de info sobre los CLASSPATH (http://www.chuidiang.com/java/classpath/classpath.php)
Título: Re: Leer Hojas Excel Con Java
Publicado por: Mr.Torture en Viernes 1 de Agosto de 2008, 17:27
hola...

estoy haciendo esto mismo..
ya logre generar mi excel y todo..
pero yo necesito en esta parte HSSFWorkbook xls=example.getWorkbook("C://kerman.xls");
en ves de leerlo del disco local.. leerlo de algun directorio en mi proyecto.. pero no puedo hacer esto.. dado q es una aplicaicon web..

hay manera de poder hacer esto??

desde ya gracias
Título: Re: Leer Hojas Excel Con Java
Publicado por: manix en Viernes 1 de Agosto de 2008, 17:57
hola

Código: Java
  1. HSSFWorkbook xls=example.getWorkbook("C://kerman.xls");
  2.  

por que hacerlo local? hazlo relativo y de esa forma lo llevas en tu proyecto, inlcuso si generas el jar queda empaquetado
ya intentastes con el getResources("ruta relativa") ?

saludos
Título: Re: Leer Hojas Excel Con Java
Publicado por: Mr.Torture en Viernes 1 de Agosto de 2008, 18:19
claro claro..
esa es mi idea... pero no puedo conseguirlo...

esto es un prowecto web..
donde deberia poner el archivo y con que ruta accederia al mismo?
mira que intente ponerlo por todos lado y no hay caso...

gracias por responder
Título: Re: Leer Hojas Excel Con Java
Publicado por: manix en Viernes 1 de Agosto de 2008, 18:25
hola

pero ya intentas asi?
Código: Java
  1. getClass().getResources("documento.xml")
  2.  

donde documento.xml esta en la carpeta raiz de tu proyecto

saludos
Título: Re: Leer Hojas Excel Con Java
Publicado por: Mr.Torture en Viernes 1 de Agosto de 2008, 20:01
hago esto
URL url = this.getClass().getResource("template.xls");
y viene en null ...
:S
Título: Re: Leer Hojas Excel Con Java
Publicado por: manix en Viernes 1 de Agosto de 2008, 21:16
hola

eso pasa porque no aparece el recurso. Dejame hacer una prueba y luego te cuento

saludos
Título: Re: Leer Hojas Excel Con Java
Publicado por: manix en Sábado 2 de Agosto de 2008, 19:24
hola

probado y las forma ue tienes esta bien, haz esto:
Código: Java
  1. HSSFWorkbook xls=example.getWorkbook("kerman.xls");
  2.  
donde tu kerman.xls enta en la ruta tuProyecto/kerman.xls

saludos
Título: Re: Leer Hojas Excel Con Java
Publicado por: Mr.Torture en Lunes 4 de Agosto de 2008, 20:00
mmm

es q HSSFWorkbook xls=example.getWorkbook("kerman.xls");
no esta definido para  el parametro del String......
tiene q entrarle un InputStream .. :S
Título: Re: Leer Hojas Excel Con Java
Publicado por: nuevajava en Jueves 21 de Agosto de 2008, 23:25
buenas tardes
antes que todo queria agrdecer la ayuda
ya resolvi como leer el archivo excel y como guardar en Jtable
mi duda ahora es como puedo validar esos datos con respecto a un JPA las celdas de la tabla