Hola... una consulta :)
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 originalXSSFWorkbook 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 originalStringBuffer 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 :(