Foro de elhacker.net

Programación => Java => Mensaje iniciado por: IntoxicKat en 9 Enero 2010, 02:03 am



Título: Verificar contenido de celdas Excel con POI Java
Publicado por: IntoxicKat en 9 Enero 2010, 02:03 am
Hola a todos.

Tengo un problema al tratar de leer una columna de excel.

Lo que quiero hacer es leer todo el contenido de la columna y al llegar a una celda sin contenido, detener la lectura.

Como puedo verificar o comprobar que una celda de mi columna esta vacia y entonces dejar de intentar leer celdas?


Asi le hago.
   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:
        int X = 6;
        int Y = 3;
        int a = 0;
        boolean Run = true;

        try
        {
             //Abrir Archivo de MICROSOFT a analizar.
        POIFSFileSystem fs =
                new POIFSFileSystem(
                    new FileInputStream("C:/Documents and Settings/sistemas/Escritorio/excel/gpotecq21.xls"));

        //Se obtiene libro de Excel.
        HSSFWorkbook LibroAnalizar = new HSSFWorkbook(fs);

        //Se obtiene la primera hoja de el libro a analizar.
        HSSFSheet HojaAnalizar = LibroAnalizar.getSheetAt(0);

        //Se declara variable para la celda.
        HSSFCell CeldaLibroAnalizar;
        HSSFRow FilaLibroAnalizar;

        //Se recorre Columna de "DIFERENCIA".
       // do {
        System.out.println("Entrando al while");

          while (Run == true) {         
            //Se obtiene la fila 4 para comenzar a analizar.
            FilaLibroAnalizar = HojaAnalizar.getRow(Y);

            //Se lee toda la columna de "DIFERENCIAS" para analizar.
            CeldaLibroAnalizar = FilaLibroAnalizar.getCell((short)X);
            //System.out.println("CELDA " +Y +"  " +CeldaLibroAnalizar);
            System.out.println("Entre While y switch");

            switch(CeldaLibroAnalizar.getCellType())
            {
                case HSSFCell.CELL_TYPE_NUMERIC:
                    System.out.println("Celda Numeric " +Y +" " +CeldaLibroAnalizar);
                    Y = Y + 1;
                    break;
                case HSSFCell.CELL_TYPE_STRING:                   
                    System.out.println("Celda String " +Y +" " +CeldaLibroAnalizar);
                     Run = false;
                    break;
                    default:
                        Run = false;
                        break;
            }
            //a = CeldaLibroAnalizar.getCellType();
            //System.out.println("Valor de a: " +a);
           
       // } //Fin Do
            System.out.println("fin Switch.");     
         
             } //Fin While
        System.out.println("Fin del WHILE");
        }
        catch(IOException e)
        {
            System.out.println("Error al leer el fichero!");
        }
         System.out.println("Fuera del try");
    }

Saludos a todos.




Título: Re: Verificar contenido de celdas Excel con POI Java
Publicado por: Blitzkrieg' en 9 Enero 2010, 03:03 am
Código
  1.   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
  2.        // TODO add your handling code here:
  3.        int X = 6;
  4.        int Y = 3;
  5.        int a = 0;
  6.        boolean Run = true;
  7.  
  8.        try
  9.        {
  10.             //Abrir Archivo de MICROSOFT a analizar.
  11.        POIFSFileSystem fs =
  12.                new POIFSFileSystem(
  13.                    new FileInputStream("C:/Documents and Settings/sistemas/Escritorio/excel/gpotecq21.xls"));
  14.  
  15.        //Se obtiene libro de Excel.
  16.        HSSFWorkbook LibroAnalizar = new HSSFWorkbook(fs);
  17.  
  18.        //Se obtiene la primera hoja de el libro a analizar.
  19.        HSSFSheet HojaAnalizar = LibroAnalizar.getSheetAt(0);
  20.  
  21.        //Se declara variable para la celda.
  22.        HSSFCell CeldaLibroAnalizar;
  23.        HSSFRow FilaLibroAnalizar;
  24.  
  25.        //Se recorre Columna de "DIFERENCIA".
  26.       // do {
  27.        System.out.println("Entrando al while");
  28.  
  29.          while (Run == true) {          
  30.            //Se obtiene la fila 4 para comenzar a analizar.
  31.            FilaLibroAnalizar = HojaAnalizar.getRow(Y);
  32.  
  33.            //Se lee toda la columna de "DIFERENCIAS" para analizar.
  34.            CeldaLibroAnalizar = FilaLibroAnalizar.getCell((short)X);
  35.            //System.out.println("CELDA " +Y +"  " +CeldaLibroAnalizar);
  36.            System.out.println("Entre While y switch");
  37.  
  38.            switch(CeldaLibroAnalizar.getCellType())
  39.            {
  40.                case HSSFCell.CELL_TYPE_NUMERIC:
  41.                    System.out.println("Celda Numeric " +Y +" " +CeldaLibroAnalizar);
  42.                    Y = Y + 1;
  43.                    break;
  44.                case HSSFCell.CELL_TYPE_STRING:                  
  45.                    System.out.println("Celda String " +Y +" " +CeldaLibroAnalizar);
  46.                     Run = false;
  47.                    break;
  48.                    default:
  49.                        Run = false;
  50.                        break;
  51.            }
  52.            //a = CeldaLibroAnalizar.getCellType();
  53.            //System.out.println("Valor de a: " +a);
  54.  
  55.       // } //Fin Do
  56.            System.out.println("fin Switch.");    
  57.  
  58.             } //Fin While
  59.        System.out.println("Fin del WHILE");
  60.        }
  61.        catch(IOException e)
  62.        {
  63.            System.out.println("Error al leer el fichero!");
  64.        }
  65.         System.out.println("Fuera del try");
  66.    }

Recuerda usar las etiquetas code.


Título: Re: Verificar contenido de celdas Excel con POI Java
Publicado por: Debci en 9 Enero 2010, 11:43 am
No me gusta nada el condicional del while, es infinito y eso peude acarrear perdida de control del programa, podrias usar otro tipo de metods, como un for con el numero de rows que hay.

Saludos