使用jxls whit OutputStream引用HttpServletResponse对象时出现问题

问题描述

2020-10-27 12:04:54 [http-nio-8080-exec-2]信息org.jxls.template.SimpleExporter [;;; 3b1c7bd5-5c93-4156-b348-a00647a8c2cf; 0]-您可能会更改文件上的SPI:META-INF / services / org.jxls.util.ServiceFactory

2020-10-27 12:04:54 [http-nio-8080-exec-2]信息org.jxls.template.SimpleExporter [;;; 3b1c7bd5-5c93-4156-b348-a00647a8c2cf; 0]-您可能会更改文件上的SPI:META-INF / services / org.jxls.util.JxlsConfigProvider

2020-10-27 12:04:54 [http-nio-8080-exec-2]信息org.jxls.util.TransformerFactory [;;; 3b1c7bd5-5c93-4156-b348-a00647a8c2cf; 0]-正在加载类org.jxls.transform.poi.PoiTransformer转换

2020-10-27 12:04:55 [http-nio-8080-exec-2]信息org.jxls.template.SimpleExporter [;;; 3b1c7bd5-5c93-4156-b348-a00647a8c2cf; 0]-您可能会更改文件上的SPI:META-INF / services / org.jxls.expression.ExpressionEvaluatorFactory

// Controller
@GetMapping("/get")
    public void getWorkList(HttpServletResponse res) throws IOException {

        //OutputStream outputStream = new FileOutputStream("target/view-dossiers.xlsx");
        ServletOutputStream outputStream = res.getOutputStream();
        res.setContentType("application/vnd.ms-excel");
        res.setHeader("Content-Disposition","attachment; filename=\"target/view-dossiers.xlsx\"");
        res.setHeader("Content-Transfer-Encoding","binary");
        this.dossierExportService.getDossiersNull(outputStream);
    }

// Service
@Override
    public void getDossiersNull(ServletOutputStream outputStream) throws IOException{
        List<DossierExportData> dataList = new ArrayList<>();
        dataList.add(new DossierExportData("AA","BB","XX",6,LocalDate.now(),"XYZ",100.00,"DD"));
        dataList.add(new DossierExportData("BB",300.00,"DD"));
        dataList.add(new DossierExportData("CC",400.00,"DD"));
        dataList.add(new DossierExportData("DD",500.00,"DD"));

        buildExcel(outputStream,dataList);
    }

// BuildExcell
private void buildExcel(OutputStream outputStream,List<DossierExportData> exportDataList) throws IOException {
        try(InputStream is = getClass().getResourceAsStream("/templates/gestione-eccedenze.xlsx")) {
            try (OutputStream os = outputStream) {
                Context context = new Context();
                context.putVar("exportList",exportDataList);
                JxlsHelper.getInstance().processTemplate(is,os,context);
            }
        }
    }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...