Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2016, 15:30
Juny18
 
Fecha de Ingreso: abril-2007
Mensajes: 166
Antigüedad: 17 años, 8 meses
Puntos: 2
lectura fichero excel

Hola tengo que leer un fichero excel e ir sacando los datos númericos. Este es mi codigo
Código:
public void lectura97(File ficheroabrir)
    {
    
	FileInputStream file = null;//stream de entrada del fichero
        HSSFWorkbook libro = null;//objeto que tiene el libro de excel
        HSSFSheet hoja;
        Iterator <Row> filaIterator;
        Iterator<Cell> cellIterator;
        Row fila;
        Cell celda;
        
        
        try 
        {
            file = new FileInputStream(fileabrir);    
            
        
        } 
        catch (FileNotFoundException ex)
        {
          JOptionPane.showMessageDialog(null,"no se encontró el fichero",
                  "Ops...Error",JOptionPane.ERROR_MESSAGE);          
        }
	
	try
        {
            /*creo un objeto que va a ser el que contenga el libro de excel*/
            
            libro = new HSSFWorkbook(file);
          
            
            
        } catch (IOException ex) 
        {
           JOptionPane.showMessageDialog(null,"Error interno E/S",
                  "Ops...Error",JOptionPane.ERROR_MESSAGE);    
        }
	
 	/*	
	 * Obtenemos la primera pestaña a la que se quiera procesar indicando 
        el indice.	
	 * Una vez obtenida la hoja excel con las filas que se quieren leer 
        obtenemos el iterator que nos permite recorrer cada una 
        de las filas que contiene. 
        El iterador es de tipo fila (<row>)
	 */
	
        int totalhojas=libro.getNumberOfSheets();
       for(int i=0;i<totalhojas;i++)
       {    
                hoja = libro.getSheetAt(i);       
                System.out.println("----HOJA : "+i+"----");
                filaIterator = hoja.iterator();//creamos el cursor 

                // Recorremos todas las filas para mostrar el contenido de cada celda

                while (filaIterator.hasNext())
                { 

                    fila = filaIterator.next(); 

                    // Obtenemos el iterator que permite recorrer todas las celdas de una fila
                    cellIterator = fila.cellIterator();                    
                    while (cellIterator.hasNext())
                    {
                        celda = cellIterator.next();
                      
                        
                        /* Dependiendo del formato de la celda el valor se debe mostrar
                        como String, Fecha, boolean, entero...*/


                                switch(celda.getCellType()) 
                                {

                                    case Cell.CELL_TYPE_NUMERIC:


                                      System.out.println(celda.getNumericCellValue());

                                      break;

                                    case Cell.CELL_TYPE_STRING:

                                      System.out.println(celda.getStringCellValue());

                                      break;
                                }

                    }

                }
       }

        try 
        {
            // cerramos el libro excel
            libro.close();
        }
        catch (IOException ex) 
        {
         JOptionPane.showMessageDialog(null,"Error cerrar el libro",
         "Ops...Error",JOptionPane.ERROR_MESSAGE);    
        }

    }
vale con esto me va recorriendo todas las hojas del excel así como todas las filas y me muestra en pantalla la fila entera.

Enfoquemos excel como una tabla. Bueno pues lo que yo necesito es coger los datos centrales de la tabla, pero no sé como posicionarme en una fila en concreto y en una celda en concreto con esta api. ¿Cómo podría hacerlo?