response实现浏览器下载附件逻辑和遇到的问题

本文介绍了一个使用Java处理Excel导出功能的案例,通过集成的插件完成模板填充。在实现过程中,遇到前端Vue无法将响应转换为blob二进制对象的问题。经过排查,发现必须使用GET请求来正确实现浏览器附件下载,而POST请求在前端处理上存在困难。
摘要由CSDN通过智能技术生成

最近在做一个excel导出的功能,是按照相应的模板然后再将内容填充进去,代码如下
使用的是集成好的一个插件 码云地址

具体实现代码

 @GetMapping("/ExcelExport/{sickIds}")
    public void testFillInTable(@PathVariable Integer [] sickIds,HSSFWorkbook wb,HttpServletResponse response) throws Exception {
        //获取患者id
       /* Integer[] sickArray = Convert.toIntArray(sickIds);*/
        Integer[] sickArray = sickIds;
      /*  int[] sickId =Arrays.asList(sickIds).stream().mapToInt(Integer::parseInt).toArray();*/
     /*   InputStream systemResourceAsStream = this.getClass().getResourceAsStream("/"+"导出记录表模板.xlsx");*/
        ClassPathResource resource = new ClassPathResource("导出记录表模板.xlsx");
        InputStream inputStream = resource.getInputStream();
        // 获取 excel 二进制文件
   /*     File file = new File("src/main/resources/导出记录表模板.xlsx");*/
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        byte[] buffer = new byte[1024];
        int num1;
        while ((num1 = inputStream.read(buffer)) != -1) {
            byteArrayOutputStream.write(buffer, 0, num1);
        }
        byteArrayOutputStream.flush();
       /* byte[] bytes = FileUtils.readFileToByteArray(file);*/
        byte[] bytes =byteArrayOutputStream.toByteArray();
        // 创建 table 对象
        ExcelWorkbook excelWorkbook = ExcelHelper.createWorkbook(bytes);
        SheetTable table = excelWorkbook.getSheet(0);

        // 设置 自定义 sheet 页名称
        table.setSheetName("内异云导出记录");

        // 定义 excel 表格数据

      /*  neiyiData sickdata = new neiyiData();*/
        //包含患者所有患病信息
        SickQueryVo sickQueryVo = new SickQueryVo();

     /*       ====================================
                       开始组装表格数据
            ====================================
*/

       /* List<sickQueryVo> sickList = Arrays.asList(
                new neiyiData(1,"张三","4","四川","156456","2021","名称
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值