package io.bitbucket.NombreDeUsuario.jee06.generadores; import java.io.IOException; import java.util.List; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import io.bitbucket.NombreDeUsuario.jee06.pojos.Libro; public final class DocumentoXlsx { public static void deLibros(HttpServletResponse response, List libros) throws IOException { XSSFWorkbook libroTrabajo = new XSSFWorkbook(); XSSFSheet hoja = libroTrabajo.createSheet("Libros"); /* Primera fila */ int numeroFila = 0; XSSFRow fila = hoja.createRow(numeroFila); String[] cabeceras = {"id","autor","descripcion","disponible","precio","publicacion"}; int numeroCabecera = 0; for (String cabecera : cabeceras) { XSSFCell celdaCabecera = fila.createCell(numeroCabecera); celdaCabecera.setCellValue(cabecera); numeroCabecera += 1; } /* Siguiente fila */ numeroFila += 1; for (Libro libro : libros) { fila = hoja.createRow(numeroFila); fila.createCell(0).setCellValue(libro.getId()); fila.createCell(1).setCellValue(libro.getAutor()); fila.createCell(2).setCellValue(libro.getDescripcion()); fila.createCell(3).setCellValue(libro.isDisponible()); fila.createCell(4).setCellValue(libro.getPrecio()); // fila.createCell(5).setCellValue(libro.getFechaPublicacion()); /* Siguientes filas */ numeroFila += 1; } response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=libros.xlsx"); ServletOutputStream salida = response.getOutputStream(); libroTrabajo.write(salida); libroTrabajo.close(); // salida.close(); } }