Saltar al contenido

Cómo descargar un archivo de Excel en Spring RestController

Si encuentras alguna parte que no entiendes puedes dejarlo en la sección de comentarios y te ayudaremos lo mas rápido que podamos.

Solución:

Puedes usar ByteArrayResource para descargar como un archivo. A continuación se muestra el fragmento de código modificado suyo

    @GetMapping(value="/downloadTemplate")
    public HttpEntity createExcelWithTaskConfigurations() throws IOException 
        byte[] excelContent = excelService.createExcel();

        HttpHeaders header = new HttpHeaders();
        header.setContentType(new MediaType("application", "force-download"));
        header.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=my_file.xlsx");


        return new HttpEntity<>(new ByteArrayResource(excelContent), header);
    

Si está intentando generar Excel usando apache poi, busque el fragmento de código a continuación

    @GetMapping(value="/downloadTemplate")
    public ResponseEntity downloadTemplate() throws Exception 
        try 
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            XSSFWorkbook workbook = createWorkBook(); // creates the workbook
            HttpHeaders header = new HttpHeaders();
            header.setContentType(new MediaType("application", "force-download"));
            header.set(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=ProductTemplate.xlsx");
            workbook.write(stream);
            workbook.close();
            return new ResponseEntity<>(new ByteArrayResource(stream.toByteArray()),
                    header, HttpStatus.CREATED);
         catch (Exception e) 
            log.error(e.getMessage());
            return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR);
        
    

Gracias a @JAR.JAR.beans. Aquí está el enlace: Descargar un archivo desde los controladores de primavera

@RequestMapping(value = "/files/file_name", method = RequestMethod.GET)
@ResponseBody 
public FileSystemResource getFile(@PathVariable("file_name") String fileName) 
    return new FileSystemResource(myService.getFileFor(fileName)); 

Si piensas que te ha resultado de ayuda nuestro artículo, sería de mucha ayuda si lo compartes con otros juniors de esta manera contrubuyes a dar difusión a nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *