Programación General > Java
Leer Hojas Excel Con Java
Antonio_Almeria:
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)
Masiosare:
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 ---java -cp %ubicaciondelarchivojar%;%direcciondetuclase% %nombredetuclase%
%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
Mr.Torture:
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
manix:
hola
--- Código: Java ---HSSFWorkbook xls=example.getWorkbook("C://kerman.xls");
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
Mr.Torture:
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
Navegación
[#] Página Siguiente
Ir a la versión completa