POI之Excel在前端和控制层代码写法

开心一笑

某晚,一裸男叫了一辆出租车,女司机目不转睛盯着看他,裸男大怒,
吼道:你他妈没见过裸男呀!女司机也大怒:我看你他妈从哪儿掏钱

提出问题

POI之Excel在前端和控制层代码如何写呢?

解决问题

下面是我在工作中,做excel导出时写的代码,解释下吧:

前段代码:
在前端,只要访问该接口在路径即可了! 不如可以用a便签等.


后端代码:
后端接口中,方法参数中需要有HttpServletResponse response这个参数,
reponse用来响应前端的请求,reponse设置编码和文件格式,
然后用response,获得文件的输出流response.getOutputStream(),
最后把excel写到输出流即可excel.write(os);至于编码问题,可以看我接下的文章。

/**
     *  描述:导出任务书
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/{id}/exportTaskBook", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public ResultData exportTaskBook(@PathVariable("id") String mainTaskId,Query query,HttpServletResponse response) throws Exception{
        List stageTaskNodeDTOs = pcsMainTaskService.findStagesTasksAndSubTaskTree(mainTaskId,query);
        //主任务
        PcsMainTask pcsMainTask = pcsMainTaskService.findById(mainTaskId);
        //项目
        PcsProject pcsProject = pcsProjectService.findById(pcsMainTask.getPmProjectId());
        HSSFWorkbook excel = pcsMainTaskService.exportTaskBook(pcsProject,pcsMainTask,stageTaskNodeDTOs);
        OutputStream os = null;
        try{
            if(pcsMainTask != null && pcsProject != null){
                String fileName = pcsProject.getName() + pcsMainTask.getName() + ".xls";
                //解决中文名乱码问题
                fileName = new String(fileName.getBytes("GBK"), "ISO8859_1");
                //设置编码、输出文件格式
                response.setContentType("application/msexcel");
                response.setCharacterEncoding("UTF-8");
                response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
                os = response.getOutputStream();
                excel.write(os);
            }else{
                logger.info("任务书导出:项目或者主任务不存在");
            }

        }catch(Exception e){
            logger.info("任务书导出异常" + e.getMessage());
        }finally{
            if(os != null){
                os.close();
            }
        }
        return new ResultData();
    }
POI之Excel在前端和控制层代码写法_第1张图片
感悟.png

读书感悟

  • 梦想要好高骛远,行动要脚踏实地
  • 如果要去非洲旅行,那乘飞机是你唯一的选择;但是如果只是去郊外踏青,
    那可能坐地铁就到了;如果你有机会去攀登珠峰,
    穿花短裤恐怕你就回不来了。梦想,就是你要去往的目的地,它可能很遥远,
    也可能触手可及。除非你知道它在哪里,否则你不会知道应该选择什么样的道路,
    携带什么样的工具
  • 梦想总是与你的价值观相联系。你相信什么,就会遇见什么

你可能感兴趣的:(POI之Excel在前端和控制层代码写法)