Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2012, 02:38
Avatar de Inicia
Inicia
 
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 14 años, 2 meses
Puntos: 1
Exclamación No puedo usar una segunda hoja de excel

Tengo un problema al querer crear un proyecto en java, con Eclipse, al querer crear una segunda hoja en un archivo de excel me marca el siguiente error:

Oracle JDBC driver loaded ok.

Indice de la tabla de Interact_CM: 9
Oracle JDBC driver loaded ok.

Entro en la primera consulta Acumulado SALIDA
Entro en la segunda consulta Acumulado ENTRADA
Entro en la tercera consulta DESBALANCE SALIDA Y ENTRADA
Compara datos Desbalance, acumulado
Exception in thread "main" java.lang.IllegalArgumentException: The workbook already contains a sheet of this name
at org.apache.poi.hssf.usermodel.HSSFWorkbook.createS heet(HSSFWorkbook.java:790)
at DiferenciaOper.GeneraExcel(DiferenciaOper.java:458 )
at DiferenciaOperador.main(DiferenciaOperador.java:15 )


Espero me puedan ayudar a corregirlo no he podido dormir en 3 días ya que no se nada de java y estoy investigando como hacerlo, si realizo una hoja todo sale perfecto pero necesito agregar mas hojas con mas información... aquí les dejo el código por si me pueden ayudar GRACIAS!!

Código Javascript:
Ver original
  1. public class DiferenciaOper extends BaseDatos {
  2.         /**
  3.          * @param args
  4.          */
  5.         int n= getN();
  6.         public Connection conn;
  7.        
  8.     //ACUMULADO
  9.         String ICOPAC_S[] = new String[n];
  10.         int LLAMADAS_ACUMULADO_S[] = new int[n];
  11.         int MINUTOS_ACUMULADO_S[] = new int[n];
  12.         String ICOPAC_E[] = new String[n];
  13.         int LLAMADAS_ACUMULADO_E[] = new int[n];
  14.         int MINUTOS_ACUMULADO_E[] = new int[n];
  15.     //DESBALANCE
  16.         String DESOPE_S[] = new String[n];
  17.         int LLAMADAS_DESBALANCE_S[] = new int[n];
  18.         int MINUTOS_DESBALANCE_S[] = new int[n];
  19.         String DESOPE_E[] = new String[n];
  20.         int LLAMADAS_DESBALANCE_E[] = new int[n];
  21.         int MINUTOS_DESBALANCE_E[] = new int[n];
  22.        
  23.     //ACUMULADO     //SALIDA
  24.         public void setICOPAC_S(int i,String ICOPAC_S)                      {   this.ICOPAC_S[i] = ICOPAC_S;                            }
  25.         public void setLLAMADAS_ACUMULADO_S(int i,int LLAMADAS_ACUMULADO_S) {   this.LLAMADAS_ACUMULADO_S[i] = LLAMADAS_ACUMULADO_S;    }
  26.         public void setMINUTOS_ACUMULADO_S(int i,int MINUTOS_ACUMULADO_S)   {   this.MINUTOS_ACUMULADO_S[i] = MINUTOS_ACUMULADO_S;      }
  27.     //ACUMULADO     // ENTRADA
  28.         public void setICOPAC_E(int i,String ICOPAC_E)                      {   this.ICOPAC_E[i] = ICOPAC_E;                            }
  29.         public void setLLAMADAS_ACUMULADO_E(int i,int LLAMADAS_ACUMULADO_E) {   this.LLAMADAS_ACUMULADO_E[i] = LLAMADAS_ACUMULADO_E;    }
  30.         public void setMINUTOS_ACUMULADO_E(int i,int MINUTOS_ACUMULADO_E)   {   this.MINUTOS_ACUMULADO_E[i] = MINUTOS_ACUMULADO_E;      }
  31.     //DESBALANCE    //SALIDA
  32.         public void setDESOPE_S(int i,String DESOPE_S)                      {   this.DESOPE_S[i] = DESOPE_S;                            }
  33.         public void setLLAMADAS_DESBALANCE_S(int i,int LLAMADAS_DESBALANCE_S){  this.LLAMADAS_DESBALANCE_S[i] = LLAMADAS_DESBALANCE_S;  }
  34.         public void setMINUTOS_DESBALANCE_S(int i,int MINUTOS_DESBALANCE_S) {   this.MINUTOS_DESBALANCE_S[i] = MINUTOS_DESBALANCE_S;    }
  35.     //DESBALANCE    //ENTRADA
  36.         public void setDESOPE_E(int i,String DESOPE_E)                      {   this.DESOPE_E[i] = DESOPE_E;    }
  37.         public void setLLAMADAS_DESBALANCE_E(int i,int LLAMADAS_DESBALANCE_E){  this.LLAMADAS_DESBALANCE_E[i] = LLAMADAS_DESBALANCE_E;  }
  38.         public void setMINUTOS_DESBALANCE_E(int i,int MINUTOS_DESBALANCE_E) {   this.MINUTOS_DESBALANCE_E[i] = MINUTOS_DESBALANCE_E;    }  
  39.     //ACUM SALIDA
  40.         public String getICOPAC_S(int i)            {   return this.ICOPAC_S[i];    }
  41.         public int getLLAMADAS_ACUMULADO_S(int i)   {   return this.LLAMADAS_ACUMULADO_S[i];    }
  42.         public int getMINUTOS_ACUMULADO_S(int i)    {   return this.MINUTOS_ACUMULADO_S[i];     }
  43.     //ACUM ENTRADA
  44.         public String getICOPAC_E(int i)            {   return this.ICOPAC_E[i];    }
  45.         public int getLLAMADAS_ACUMULADO_E(int i)   {   return this.LLAMADAS_ACUMULADO_E[i];    }
  46.         public int getMINUTOS_ACUMULADO_E(int i)    {   return this.MINUTOS_ACUMULADO_E[i];     }
  47.     // DESBALANCE   //SALIDA   
  48.         public String getDESOPE_S(int i)            {   return this.DESOPE_S[i];                }
  49.         public int getLLAMADAS_DESBALANCE_S(int i)  {   return this.LLAMADAS_DESBALANCE_S[i];   }
  50.         public int getMINUTOS_DESBALANCE_S(int i)   {   return this.MINUTOS_DESBALANCE_S[i];    }
  51.     // DESBALANCE   /// ENTRADA
  52.         public String getDESOPE_E(int i)            {   return this.DESOPE_E[i];                }
  53.         public int getLLAMADAS_DESBALANCE_E(int i)  {   return this.LLAMADAS_DESBALANCE_E[i];   }
  54.         public int getMINUTOS_DESBALANCE_E(int i)   {   return this.MINUTOS_DESBALANCE_E[i];    }
  55.  
  56.        
  57.         //MEDIACION ARCHIVOS
  58.         String DIAMED[] = new String[n];
  59.         int ARCHIVOSMED[] = new int[n];
  60.         //INTERCONEXION ARCHIVOS
  61.         String DIAITX[] = new String[n];
  62.         int ARCHIVOSITX[] = new int[n];
  63.        
  64.        
  65.         public void setDIAMED(int i,String DIAMED)          {       this.DIAMED[i] = DIAMED;            }
  66.         public void setARCHIVOSMED(int i,int ARCHIVOSMED)   {       this.ARCHIVOSMED[i] = ARCHIVOSMED;  }
  67.         public void setDIAITX(int i,String DIAITX)          {       this.DIAITX[i] = DIAITX;            }
  68.         public void setARCHIVOSITX(int i,int ARCHIVOSITX)   {       this.ARCHIVOSITX[i] = ARCHIVOSITX;  }
  69.        
  70.         //bolsa error  
  71.         public String getDIAMED(int i)          {       return this.DIAMED[i];          }
  72.         public int getARCHIVOSMED(int i)        {       return this.ARCHIVOSMED[i];     }
  73.         public String getDIAITX(int i)          {       return this.DIAITX[i];          }
  74.         public int getIARCHIVOSITX(int i)       {       return this.ARCHIVOSITX[i];     }
  75.  
  76.        
  77.        
  78. /////CONTAR CUANTAS LINEAS
  79.         public int getN()  {
  80.             int i=0;
  81.             String query = " SELECT count(distinct(ICOPAC)) AS j "+
  82.                      " FROM ICRESDIA   "+
  83.                      " WHERE ICDATE BETWEEN trunc(last_day (add_months(sysdate,-1))+1) and trunc((sysdate))   "+
  84.                      " AND ICACAS IN (169,170,171,172,98,99,100,101,102,103,4,5,14,15,81,87,28,29,31,34,35,45,46,32,33,47,48,43,44,55,56,94,95,97,90,91,57,60)  ";
  85.             try {          
  86.                 BaseDatos119 bd119 = new BaseDatos119();           
  87.                 bd119.conectaBD119();  
  88.                 conn = bd119.getConn119();
  89.                 Statement st = conn.createStatement();
  90.                 ResultSet rs = st.executeQuery(query);
  91.                 while(rs.next())
  92.                     i= rs.getInt("j");
  93.                      System.out.print("Indice de la tabla de Interact_CM: "+i+"\n");
  94.                 rs.close();
  95.                 st.close();
  96.                 bd119.desconectaBD119();        }
  97.            
  98.             catch(SQLException e)   {   System.out.println("Error al intentar encontrar el indice i "+e.getMessage());  }
  99.            
  100.             return i;       }
  101.        
  102.         ////
  103.         /////
  104.         //////
  105.         public int getN1()  {
  106.             int i=0;
  107.             String query = " SELECT count(*) as j from (SELECT substr(FILE_NAME, 0,8) DIA, count(*) ARCHIVOS " +
  108.                             " FROM INTERACT_CM.INTERACT_STAGES " +
  109.                             " WHERE STAGE_ID ='formato_interconexion' " +
  110.                             " AND CDR_OK >0 " +
  111.                             " AND FILE_NAME LIKE '201212%' " +
  112.                             " GROUP by substr(FILE_NAME, 0,8)) " ;
  113.             try{
  114.                 BaseDatos bd = new BaseDatos();
  115.                 bd.conectaBD();
  116.                 conn = bd.getConn();
  117.                 Statement st = conn.createStatement();
  118.                 ResultSet rs = st.executeQuery(query);
  119.                 while(rs.next())
  120.                     i= rs.getInt("j");
  121.                     System.out.print("Indice de la tabla de Interact_CM: "+i+"\n");        
  122.                 rs.close();
  123.                 st.close();
  124.                 bd.desconectaBD();      }
  125.            
  126.             catch(SQLException e)   {   System.out.println("Error al intentar encontrar el indice i "+e.getMessage());}
  127.            
  128.             return i;   }
  129.        
  130.         public void DifLlam(){
  131. ///////////////////////// ACUMULADO SALIDA
  132.             int i =0;
  133.         String query = " SELECT ICOPAC as ICOPAC_S, SUM(NUMLLA) LLAMADAS_ACUMULADO_S ,SUM(ICMINO) MINUTOS_ACUMULADO_S " +
  134.                 " FROM ICRESDIA " +
  135.                 " WHERE ICDATE BETWEEN trunc(last_day (add_months(sysdate,-1))+1) and trunc((sysdate)) " +
  136.                 " AND ICACAS IN ('169','170','98','99','100','4','5','81','28','29','34','35','32','33','43','44','94','95','97','60') " +
  137.                 " GROUP BY ICOPAC  ORDER BY ICOPAC ASC  " ;
  138.     try{       
  139.         BaseDatos119 bd119 = new BaseDatos119();
  140.         bd119.conectaBD119();
  141.         conn = bd119.getConn119();
  142.         Statement st = conn.createStatement();
  143.         ResultSet rs = st.executeQuery(query);
  144.         while(rs.next()){
  145.             setICOPAC_S(i,rs.getString("ICOPAC_S"));
  146.             setLLAMADAS_ACUMULADO_S(i,rs.getInt("LLAMADAS_ACUMULADO_S"));
  147.             setMINUTOS_ACUMULADO_S(i,rs.getInt("MINUTOS_ACUMULADO_S"));
  148.             i++;                }
  149.            
  150.              System.out.print("Entro en la primera consulta Acumulado SALIDA\n");
  151. ////////////////////////// ACUMULADO ENTRADA
  152.              i =0;
  153.              query = " SELECT ICOPAC as ICOPAC_E, SUM(NUMLLA) LLAMADAS_ACUMULADO_E ,SUM(ICMINO) MINUTOS_ACUMULADO_E " +
  154.                         " FROM ICRESDIA " +
  155.                         " WHERE ICDATE BETWEEN trunc(last_day (add_months(sysdate,-1))+1) and trunc((sysdate)) " +
  156.                         " AND ICACAS IN ('171','172','101','102','103','14','15','87','31','47','48','45','46','55','56','90','91','57') " +
  157.                         " GROUP BY ICOPAC ORDER BY ICOPAC ASC  " ;
  158.                 bd119.conectaBD119();          
  159.                 conn = bd119.getConn119();
  160.                 st = conn.createStatement();
  161.                 rs = st.executeQuery(query);           
  162.                 while(rs.next()){
  163.                     setICOPAC_E(i,rs.getString("ICOPAC_E"));
  164.                     setLLAMADAS_ACUMULADO_E(i,rs.getInt("LLAMADAS_ACUMULADO_E"));
  165.                     setMINUTOS_ACUMULADO_E(i,rs.getInt("MINUTOS_ACUMULADO_E"));
  166.                     i++;                }
  167.                      System.out.print("Entro en la segunda consulta Acumulado ENTRADA\n");