quiero crear un excel desde datos de la BD, pero me encuentro con un problema al traer los datos de l BD que no se como funciona :/
Utilizo POI
aca la cabecera y en donde se exporta el archivo excel .xlsx
Código C:
Ver original
XSSFWorkbook wb = new XSSFWorkbook();; response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=ExcelPrueba.xlsx"); Sheet sheet = wb.createSheet("MiHoja"); /*Estilos*/ XSSFFont font = wb.createFont(); font.setBoldweight((short) 700); sheet.setDefaultColumnWidth(15); XSSFCellStyle headerStyle = wb.createCellStyle(); headerStyle.setFont(font); XSSFCellStyle dataStyle = wb.createCellStyle(); dataStyle.setWrapText(true); /*Fin Estilos*/ /*Fila Cabecera*/ Row row = sheet.createRow(0); Cell cell1 = row.createCell(0); cell1.setCellStyle(headerStyle); cell1.setCellValue("Cuenta"); Cell cell2 = row.createCell(1); cell2.setCellStyle(headerStyle); cell2.setCellValue("Ficha"); Cell cell3 = row.createCell(2); cell3.setCellStyle(headerStyle); cell3.setCellValue("Nombre Publicar"); Cell cell4 = row.createCell(3); cell4.setCellStyle(headerStyle); cell4.setCellValue("Calle"); Cell cell5 = row.createCell(4); cell5.setCellStyle(headerStyle); cell5.setCellValue("Numero"); Cell cell6 = row.createCell(5); cell6.setCellStyle(headerStyle); cell6.setCellValue("Resto"); Cell cell7 = row.createCell(6); cell7.setCellStyle(headerStyle); cell7.setCellValue("Telfono"); Cell cell8 = row.createCell(7); cell8.setCellStyle(headerStyle); cell8.setCellValue("Zona Telefono"); /*FIN FILA CABECERA*/ /*DATOS PARA MOSTRAR*/ CallCenterHome home = (CallCenterHome) ServiceLocator.getHome("contract/callCenter/CallCenter"); CallCenterRemote callCenterRemote = home.create(); Collection result = new ArrayList(); Integer filterStatus = new Integer(-1); Integer filterCuenta = new Integer(0); result = callCenterRemote.getCallCenter(filterStatus, filterCuenta); int i = 1; Iterator it = result.iterator(); while(it.hasNext()) { System.out.println(it.next()); /*Aca no se como recorrer la coleccion para traer los datos y llenar las celdas*/ // sheet.createRow(i).createCell(i).setCellValue((String)it.next()); i++; } OutputStream out = response.getOutputStream(); wb.write(out); out.flush(); out.close();
aca una parte del archivo en donde genera la consulta a la BD
Código C:
Ver original
StringBuffer select = new StringBuffer("select CO_CUENTA, ") .append(" CALL_CENTER, ") .append(" CO_FICHA, ") .append(" NOMBRE_PUBLICAR, ") .append(" CALLE, ") .append(" NUMERO, ") .append(" RESTO, ") .append(" ZONA_TELEFONO, ") .append(" TELEFONO, ") .append(" MAIL, ") .append(" GRABACION, ") .append(" ESTADO ") .append(" from edithor.call_center_gest ") .append(p) .append(p2) .append(" order by CO_CUENTA"); quickSQL = new QuickSQL(con); QuickSQLResult[] quickSQLResult = quickSQL.executeQuery(select.toString(), param); Collection result = new ArrayList(); for(int i = 0; i < quickSQLResult.length; i++) { CallCenterVO rejectionVO = new CallCenterVO(); rejectionVO.setCodCallCenter(quickSQLResult[i].getString("CALL_CENTER")); rejectionVO.setCoCuenta(quickSQLResult[i].getString("CO_CUENTA")); rejectionVO.setCoFicha(quickSQLResult[i].getString("CO_FICHA")); rejectionVO.setNombrePublicar(quickSQLResult[i].getString("NOMBRE_PUBLICAR")); rejectionVO.setCalle(quickSQLResult[i].getString("CALLE")); rejectionVO.setNumero(quickSQLResult[i].getString("NUMERO")); rejectionVO.setResto(quickSQLResult[i].getString("RESTO")); rejectionVO.setZonaTelefono(quickSQLResult[i].getString("ZONA_TELEFONO")); rejectionVO.setTelefono(quickSQLResult[i].getString("TELEFONO")); rejectionVO.setMail(quickSQLResult[i].getString("MAIL")); rejectionVO.setGrabacion(quickSQLResult[i].getString("GRABACION")); rejectionVO.setEstado(quickSQLResult[i].getString("ESTADO")); result.add(rejectionVO); } return result;
si pudiesen ayudar seria genial... alomejor estoy haciendo algo muy mal :(