Buenas
No soy experto en java, necesito leer un archivo de excel y con la información hacer unas validaciones para lamacenarla en una Base de datos.
Quien me pueda regalar una guia detallada de como hacerlo, me ayudaria mucho.
| |||
Leer archivos de excel con java Buenas No soy experto en java, necesito leer un archivo de excel y con la información hacer unas validaciones para lamacenarla en una Base de datos. Quien me pueda regalar una guia detallada de como hacerlo, me ayudaria mucho. |
| |||
Re: Leer archivos de excel con java Este codigo, lee un archivo .TXT y en base a las instrucciones SQL dentro del .txt se crean tablas sobre la base de datos, para un excel debe ser algo similar, pero separado por comas como token: Los imports que usa son: import java.sql.*; import java.io.*; import java.util.*; import com.ibm.db.beans.*; Cita: // Abre la lista de tablas a crear Vector tables = new Vector(); String tableFile = "tablas.txt"; String table = null; String create = null; String drop = null; InputStream is = null; InputStreamReader isr = null; BufferedReader br = null; String line = null; is = this.getClass().getResourceAsStream(tableFile); isr = new InputStreamReader(is); br = new BufferedReader(isr); System.out.println( "CICLO 1 Crea tablas"); while ((line = br.readLine()) != null) { StringTokenizer tokenizer = new StringTokenizer(line, "="); table = tokenizer.nextToken(); // Nombre de tabla create = tokenizer.nextToken(); // INstruccion create // Primero borra la tabla existente String tmpString = replaceAll(table, "QGPL", getBiblioteca() ); drop = "drop table " + getBiblioteca()+"."+tmpString; // table System.out.println(drop); executeStatement(drop, true); System.out.println(create); // Luego crea de nuevo la tabla tmpString = replaceAll(create, "QGPL", getBiblioteca() ); //executeStatement(create, true); executeStatement(tmpString, true); tables.addElement(table); } br.close(); |
| |||
Re: Leer archivos de excel con java wwwmaster creo que no tiene nada(algo a lo mejor si pero poco) que ver yo estube hace tiempo buscando algo de eso Prueba buscando en el foro...... http://www.forosdelweb.com/f45/leer-...e-java-352592/ Y algo sobre la libreria Jakarta POI. |
| |||
Re: Leer archivos de excel con java leer un archivo excel guardado como .CVS (separado por comas) es igual a leer un archivo de texto. El "parse" se tendria q hacer manualmente por los tokens (comas) de la informacion que se lee. Otra manera seria leer mediante un EXCEL driver como si fuera una tabla el archivo en excel, pero no lo he hecho en java, solo en asp y php. |
| |||
Re: Leer archivos de excel con java a eso me referia a leer un archivo excel (xls), yo consegi grabar y crear de un jtable un archivo excel pero leerlo tal cual no lo termine de hacer correctamente |
| |||
Re: Leer archivos de excel con java Cita: Si, pero lo que han pedido es leer un fichero de Excel, no un fichero .CVS. Y en tu mensaje inicial no dices nada de transformar primero el fichero Excel a .CVS, de ahi la confusión, supongo.Si tiene la opción de transformarlo y queda en un formato que le sirve, pues así mismo. Si no, lo que suele usar la gente es Jakarta POI, xlsql, o JExcelAPI, que te permiten leer Excels directamente. No me ha tocado, así que no se cual va mejor o peor. Hay esas opciones y alguna más comercial en esta lista: http://schmidt.devlib.org/java/libraries-excel.html Y para más información "java excel" en Google saca estas cosas y algunas más. S! |
| ||||
Re: Leer archivos de excel con java Este es un método que te lee los datos del archivo exel y te retorna la información dentro de un vector. __________________________________________________ __________________________________________________ ______________________________ /** * Método que se encarga de leer los datos de un archivo en formato excel * @param file Archivo que se va a proceder a leer * @return Vector que contiene la informacion del archivo */ public Vector leeArchivo(File file){ Vector informacionArchivo = new Vector(); POIFSFileSystem poifsFileSystem = null; try { poifsFileSystem = new POIFSFileSystem(new FileInputStream(file)); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } HSSFWorkbook hssfWorkbook = null; try { hssfWorkbook = new HSSFWorkbook(poifsFileSystem); } catch (IOException ex) { ex.printStackTrace(); } HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0); Iterator iterator = hssfSheet.rowIterator(); // Recorro datos de fila en fila while(iterator.hasNext()){ HSSFRow hssfRow = (HSSFRow)iterator.next(); Iterator iteratorAuxiliar = hssfRow.cellIterator(); Vector informacionFila = new Vector(); //Me barro todos los elementos de una fila for(short i = hssfRow.getFirstCellNum(); i < hssfRow.getLastCellNum(); i++){ HSSFCell hssfCell = hssfRow.getCell(i); if(hssfCell != null){ switch(hssfCell.getCellType()){ case HSSFCell.CELL_TYPE_BLANK: informacionFila.add(""); break; case HSSFCell.CELL_TYPE_BOOLEAN: informacionFila.add(hssfCell.getBooleanCellValue() ); break; case HSSFCell.CELL_TYPE_FORMULA: informacionFila.add(hssfCell.getStringCellValue()) ; break; case HSSFCell.CELL_TYPE_NUMERIC: informacionFila.add(hssfCell.getNumericCellValue() ); break; case HSSFCell.CELL_TYPE_STRING: informacionFila.add(hssfCell.getStringCellValue()) ; break; default: } } } informacionArchivo.add(informacionFila); } return informacionArchivo; } __________________________________________________ __________________________________________________ ______________________________ Espero que te sirva con este método he logrado leer datos de un archivo de 12 megas. |
| |||
Re: Leer archivos de excel con java Hola, Estoy haciendo un programa que crea un archvo en excel y me gustaria saber si hay alguna forma de insertar una imagen en una celda en vez de texto. Si alguien sabe como hacerlo os agradeceria que me respondieseis. Gracias de todas formas jhh |
| |||
Leer archivos de excel con java Hola soy nuevo en este foro y nuevo tb en jsf y estoy intentando leer un fichero excel desde mi aplicacion y recorrerlo por columnas en vez de x filas y hacer una serie de validaciones para posteriormente meter esos datos leidos en distintas tablas de bases de datos.Espero que alguien me pueda ayudar xq la verdad es q stoy ya bastante liado leyendo comentarios y no se como atajar este problema.Muxas gracias de antemano!!! |
| |||
Respuesta: Leer archivos de excel con java A ver si sirve esto....(usando poi-3.0-rc4) Con inputFileUpload pones el archivo en el formulario/backingbean/o como quieras llamarlo. En el servidor haces esto: InputStream stream = form.getFichero().getInputStream(); //form es el backingbean con alzance session. HSSFWorkbook workbook = new HSSFWorkbook(stream); HSSFSheet sheet = workbook.getSheetAt(0); HSSFRow row = sheet.getRow(0); En row vas a tener la fila 0. Si queres la 1 haces sheet.getRow(1); asi sucesivamente. luego para acceder a cada columna del row haces.... String valorStr = row.getCell((short)0).getRichStringCellValue().get String(); //El valor de la columna 0. Creo que con eso tiene que bastar. No se si ya hay algo para recorrer por columna, pero si no lo hay lo implementas. Saludos.- Última edición por emucho; 21/11/2008 a las 06:38 Razón: Me falto aclarar algo |
| |||
Respuesta: Leer archivos de excel con java emucho llevo desde el Viernes probando esa última instrucción para que me devolviera el valor de la celda y haciéndole la traza una vez tras otra no m devuelve el valor, sale del mismo sin darme ningun resultado...sabes alguna otra forma de sacar el valor de esa celda con esta api?muxas gracias x todo |
| |||
Respuesta: Leer archivos de excel con java Pues que el metodo getRichStringCellValue(). no m funcionaba, tuve que poner row.getCell((short)1).getStringCellValue() y esta ya devuelve bien los datos.Sabes si hay algun iterador con esta Api xa recorrer el Excel x columnas?Es que no se a priori el tamaño del Excel y tiene q recorrerlo automaticamente...Gracias |
| |||
Respuesta: Leer archivos de excel con java Buenas tardes aqui vuelvo a la carga...mi problema es q el iterador usado por Apache POI para iterar sobre celdas no m da el resultado esperado y lo hago personlalmente el recorrido, pero tengo el problema que al acabar y encontrar una celda vacia me da un nullpointer exception el rowidZonas.getCell((short)z).getStringCellValue() q es la condicion para salir del bucle, y no se como puedo salir xq deberia de encontrar un null y salir del mismo xq mi condicion es q si es igual a null se sale...a ver si alguien puede decirme el xq...creo q el problema es del metodo getStringCellValue() que peta como sea null... |
| |||
Respuesta: Leer archivos de excel con java Lo valido lo q pasa es q al hacer sheet.getRow(0) me da un nullPointerException y no se como tratarla xa q no salte la excepcion sino q m devuelva un mensaje de error.Si alguien sabe como tratar ese caso(en el que el Excel pasado sea nulo o contenga valores nulos en la primera fila) le agradeceria me comentara la solucion. Gracias!!! |
| |||
Respuesta: Leer archivos de excel con java ¿Alguien sabe como solucionar el caso de que tengamos una celda vacía(nula)?lo estoy haciendo asi: switch(rowEspecies.getCell((short)c).getCellType() ){ case HSSFCell.CELL_TYPE_BLANK: { FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("El numero de especies pasado en la fila "+cont+" y columna " +c+ " no es de un tipo válido")); break; } pero me da un nullPointerException en vez de meterse dentro del type blank...Muchas graciAS |
| |||
Respuesta: Leer archivos de excel con java Yo estoy utilizando el apache poi para leer un fichero excel en java puro, y luego guardar los datos que recojo de las celdas en una tabla. Según he podido leer este es el proyecto mas extendido para realizar este tipo de procesos y el mas estable ya que lleva mucho tiempo en desarrollo. Leete la guia rápida de ayuda en : http://poi.apache.org/spreadsheet/quick-guide.html#NewWorkbook. Yo pienso que si lo que quieres es leer un excel esta es un opción facil ya que viene con clases y metodos para poder leer las filas y columnas que quieras. Saludos. |
| |||
Respuesta: Leer archivos de excel con java El último mensaje de este tema es dediciembre del 2008, y ya habían solucionado el problema... No es bueno resucitar temas que descansan el sueño de los justos, podrían enfadarse .
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |