Boa tarde a todos…
Seguinte consegui gerar um arquivo excel de forma dinâmica que foi um sufoco, com a api POI código abaixo
public HSSFWorkbook geraExcel (final List<List>listao) {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = wb.createSheet("Planilha Um");
DtoNulo retorno = new DtoNulo();
try {
int num_col = listao.get(0).size();
int num_lin = listao.size();
for (int indice = 0 ; indice < num_lin ; indice ++ ) {
HSSFRow row = sheet1.createRow(indice);
for (int indice2 = 0; indice2 < num_col; indice2++ ) {
if (listao.get(indice).get(indice2) == null) {
row.createCell(indice2).setCellValue("null");
}else if (listao.get(0).get(0).getClass().equals(retorno.getClass())) {
row.createCell(indice2).setCellValue("null");
}else {
row.createCell(indice2).setCellValue(listao.get(indice).get(indice2).toString());
}
}
}
}catch (Throwable th) {
}
return wb ;
}
@SuppressWarnings("null")
public String report() throws UnisException {
AjaxResponse wresp = null;
try {
AjaxRequest xreq = (AjaxRequest) ActionContext.getContext().get(AjaxRequest.KEY);
String sql = xreq.getHttpRequest().getParameter("sql").toString();
List<List > lista = exportacaoDadosLogic.listaComSql(sql);
//insert into tpt144 ( cdempgrp, cdespecie, dsespecie, dtgrv, dtatlz) values ('6058','77','teste sql222',null,null)
DtoNulo erro = new DtoNulo();
HSSFWorkbook wbs = geraExcel(lista);
HttpServletResponse response = ServletActionContext.getResponse();
String nomeArquivo = "Resultado_SQL";
response.setHeader("Content-Disposition", "attachment; filename=" + nomeArquivo + ".ods");
ServletOutputStream outputStream = response.getOutputStream();
outputStream.write(wbs.getBytes());
outputStream.flush();
outputStream.close();
wresp = AjaxResponse.SUCCESS();
} catch (Exception ex) {
wresp = AjaxResponse.ERROR();
wresp.setMessage(ex.getMessage());
LOGGER.error("Report", ex);
}
return wresp.getResult();
}
Minha dúvida é a seguinte , como é um sistema web, o usuário também pode querer que esse arquivo seja salvo como pdf, então o problema é : Tem como converter um POI para pdf ? Caso contrario terei que gerar todo o relatório novamente…
Pesquisei sobre o assunto , mas não encontrei nada sobre isso…bom agradeço por qualquer ajuda…