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
public class DiferenciaOper extends BaseDatos { /** * @param args */ int n= getN(); public Connection conn; //ACUMULADO String ICOPAC_S[] = new String[n]; int LLAMADAS_ACUMULADO_S[] = new int[n]; int MINUTOS_ACUMULADO_S[] = new int[n]; String ICOPAC_E[] = new String[n]; int LLAMADAS_ACUMULADO_E[] = new int[n]; int MINUTOS_ACUMULADO_E[] = new int[n]; //DESBALANCE String DESOPE_S[] = new String[n]; int LLAMADAS_DESBALANCE_S[] = new int[n]; int MINUTOS_DESBALANCE_S[] = new int[n]; String DESOPE_E[] = new String[n]; int LLAMADAS_DESBALANCE_E[] = new int[n]; int MINUTOS_DESBALANCE_E[] = new int[n]; //ACUMULADO //SALIDA public void setICOPAC_S(int i,String ICOPAC_S) { this.ICOPAC_S[i] = ICOPAC_S; } public void setLLAMADAS_ACUMULADO_S(int i,int LLAMADAS_ACUMULADO_S) { this.LLAMADAS_ACUMULADO_S[i] = LLAMADAS_ACUMULADO_S; } public void setMINUTOS_ACUMULADO_S(int i,int MINUTOS_ACUMULADO_S) { this.MINUTOS_ACUMULADO_S[i] = MINUTOS_ACUMULADO_S; } //ACUMULADO // ENTRADA public void setICOPAC_E(int i,String ICOPAC_E) { this.ICOPAC_E[i] = ICOPAC_E; } public void setLLAMADAS_ACUMULADO_E(int i,int LLAMADAS_ACUMULADO_E) { this.LLAMADAS_ACUMULADO_E[i] = LLAMADAS_ACUMULADO_E; } public void setMINUTOS_ACUMULADO_E(int i,int MINUTOS_ACUMULADO_E) { this.MINUTOS_ACUMULADO_E[i] = MINUTOS_ACUMULADO_E; } //DESBALANCE //SALIDA public void setDESOPE_S(int i,String DESOPE_S) { this.DESOPE_S[i] = DESOPE_S; } public void setLLAMADAS_DESBALANCE_S(int i,int LLAMADAS_DESBALANCE_S){ this.LLAMADAS_DESBALANCE_S[i] = LLAMADAS_DESBALANCE_S; } public void setMINUTOS_DESBALANCE_S(int i,int MINUTOS_DESBALANCE_S) { this.MINUTOS_DESBALANCE_S[i] = MINUTOS_DESBALANCE_S; } //DESBALANCE //ENTRADA public void setDESOPE_E(int i,String DESOPE_E) { this.DESOPE_E[i] = DESOPE_E; } public void setLLAMADAS_DESBALANCE_E(int i,int LLAMADAS_DESBALANCE_E){ this.LLAMADAS_DESBALANCE_E[i] = LLAMADAS_DESBALANCE_E; } public void setMINUTOS_DESBALANCE_E(int i,int MINUTOS_DESBALANCE_E) { this.MINUTOS_DESBALANCE_E[i] = MINUTOS_DESBALANCE_E; } //ACUM SALIDA public String getICOPAC_S(int i) { return this.ICOPAC_S[i]; } public int getLLAMADAS_ACUMULADO_S(int i) { return this.LLAMADAS_ACUMULADO_S[i]; } public int getMINUTOS_ACUMULADO_S(int i) { return this.MINUTOS_ACUMULADO_S[i]; } //ACUM ENTRADA public String getICOPAC_E(int i) { return this.ICOPAC_E[i]; } public int getLLAMADAS_ACUMULADO_E(int i) { return this.LLAMADAS_ACUMULADO_E[i]; } public int getMINUTOS_ACUMULADO_E(int i) { return this.MINUTOS_ACUMULADO_E[i]; } // DESBALANCE //SALIDA public String getDESOPE_S(int i) { return this.DESOPE_S[i]; } public int getLLAMADAS_DESBALANCE_S(int i) { return this.LLAMADAS_DESBALANCE_S[i]; } public int getMINUTOS_DESBALANCE_S(int i) { return this.MINUTOS_DESBALANCE_S[i]; } // DESBALANCE /// ENTRADA public String getDESOPE_E(int i) { return this.DESOPE_E[i]; } public int getLLAMADAS_DESBALANCE_E(int i) { return this.LLAMADAS_DESBALANCE_E[i]; } public int getMINUTOS_DESBALANCE_E(int i) { return this.MINUTOS_DESBALANCE_E[i]; } //MEDIACION ARCHIVOS String DIAMED[] = new String[n]; int ARCHIVOSMED[] = new int[n]; //INTERCONEXION ARCHIVOS String DIAITX[] = new String[n]; int ARCHIVOSITX[] = new int[n]; public void setDIAMED(int i,String DIAMED) { this.DIAMED[i] = DIAMED; } public void setARCHIVOSMED(int i,int ARCHIVOSMED) { this.ARCHIVOSMED[i] = ARCHIVOSMED; } public void setDIAITX(int i,String DIAITX) { this.DIAITX[i] = DIAITX; } public void setARCHIVOSITX(int i,int ARCHIVOSITX) { this.ARCHIVOSITX[i] = ARCHIVOSITX; } //bolsa error public String getDIAMED(int i) { return this.DIAMED[i]; } public int getARCHIVOSMED(int i) { return this.ARCHIVOSMED[i]; } public String getDIAITX(int i) { return this.DIAITX[i]; } public int getIARCHIVOSITX(int i) { return this.ARCHIVOSITX[i]; } /////CONTAR CUANTAS LINEAS public int getN() { int i=0; String query = " SELECT count(distinct(ICOPAC)) AS j "+ " FROM ICRESDIA "+ " WHERE ICDATE BETWEEN trunc(last_day (add_months(sysdate,-1))+1) and trunc((sysdate)) "+ " 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) "; try { BaseDatos119 bd119 = new BaseDatos119(); bd119.conectaBD119(); conn = bd119.getConn119(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()) i= rs.getInt("j"); System.out.print("Indice de la tabla de Interact_CM: "+i+"\n"); rs.close(); st.close(); bd119.desconectaBD119(); } catch(SQLException e) { System.out.println("Error al intentar encontrar el indice i "+e.getMessage()); } return i; } //// ///// ////// public int getN1() { int i=0; String query = " SELECT count(*) as j from (SELECT substr(FILE_NAME, 0,8) DIA, count(*) ARCHIVOS " + " FROM INTERACT_CM.INTERACT_STAGES " + " WHERE STAGE_ID ='formato_interconexion' " + " AND CDR_OK >0 " + " AND FILE_NAME LIKE '201212%' " + " GROUP by substr(FILE_NAME, 0,8)) " ; try{ BaseDatos bd = new BaseDatos(); bd.conectaBD(); conn = bd.getConn(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()) i= rs.getInt("j"); System.out.print("Indice de la tabla de Interact_CM: "+i+"\n"); rs.close(); st.close(); bd.desconectaBD(); } catch(SQLException e) { System.out.println("Error al intentar encontrar el indice i "+e.getMessage());} return i; } public void DifLlam(){ ///////////////////////// ACUMULADO SALIDA int i =0; String query = " SELECT ICOPAC as ICOPAC_S, SUM(NUMLLA) LLAMADAS_ACUMULADO_S ,SUM(ICMINO) MINUTOS_ACUMULADO_S " + " FROM ICRESDIA " + " WHERE ICDATE BETWEEN trunc(last_day (add_months(sysdate,-1))+1) and trunc((sysdate)) " + " AND ICACAS IN ('169','170','98','99','100','4','5','81','28','29','34','35','32','33','43','44','94','95','97','60') " + " GROUP BY ICOPAC ORDER BY ICOPAC ASC " ; try{ BaseDatos119 bd119 = new BaseDatos119(); bd119.conectaBD119(); conn = bd119.getConn119(); Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(query); while(rs.next()){ setICOPAC_S(i,rs.getString("ICOPAC_S")); setLLAMADAS_ACUMULADO_S(i,rs.getInt("LLAMADAS_ACUMULADO_S")); setMINUTOS_ACUMULADO_S(i,rs.getInt("MINUTOS_ACUMULADO_S")); i++; } System.out.print("Entro en la primera consulta Acumulado SALIDA\n"); ////////////////////////// ACUMULADO ENTRADA i =0; query = " SELECT ICOPAC as ICOPAC_E, SUM(NUMLLA) LLAMADAS_ACUMULADO_E ,SUM(ICMINO) MINUTOS_ACUMULADO_E " + " FROM ICRESDIA " + " WHERE ICDATE BETWEEN trunc(last_day (add_months(sysdate,-1))+1) and trunc((sysdate)) " + " AND ICACAS IN ('171','172','101','102','103','14','15','87','31','47','48','45','46','55','56','90','91','57') " + " GROUP BY ICOPAC ORDER BY ICOPAC ASC " ; bd119.conectaBD119(); conn = bd119.getConn119(); st = conn.createStatement(); rs = st.executeQuery(query); while(rs.next()){ setICOPAC_E(i,rs.getString("ICOPAC_E")); setLLAMADAS_ACUMULADO_E(i,rs.getInt("LLAMADAS_ACUMULADO_E")); setMINUTOS_ACUMULADO_E(i,rs.getInt("MINUTOS_ACUMULADO_E")); i++; } System.out.print("Entro en la segunda consulta Acumulado ENTRADA\n");