美文网首页
基于spring boot整合poi实现excel导出下载功能

基于spring boot整合poi实现excel导出下载功能

作者: ayinmu | 来源:发表于2019-01-07 13:46 被阅读79次

    公司业务开发,根据客户要求需要实现导出功能,由于用的是spring boot 框架,以此来写一篇文章实现此功能!(只是简单实现导出,格式要求啥的没做要求,自己根据需要查询文档)希望能帮助广大新手朋友!!!

    第一步:spring boot整合poi很简单,网上例子很多,这列不多做赘述,我的例子是:

    依赖导入

    第二步:前端代码

    前端页面代码

    第三步:实体类、dao层、service层

    实体类 dao层 service层

    第四步:controller层

    /**

    * 导出excel

    */

    @RequestMapping("/cexp")

    public void expr(HttpServletRequest request, HttpServletResponse response)throws IOException{

    SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");

    String fileName = sdf.format(new Date()) +".xlsx";

    //声明一个工作簿

        XSSFWorkbook workbook=new XSSFWorkbook();

    //自动换行

        XSSFCellStyle setBorder=workbook.createCellStyle();

    //生成一表格

        XSSFSheet sheet=workbook.createSheet("频道列表");

    XSSFRow row =null;

    List channelEntityList=channelService.getChannel();

    row=sheet.createRow(0);

    //行高

        row.setHeight((short) (26.25*20));

    row.createCell(0).setCellValue("ID");

    row.createCell(1).setCellValue("频道名称");

    row.createCell(2).setCellValue("排序");

    if (channelEntityList!=null&&channelEntityList.size()>0){

    for (int i=0;i

    row=sheet.createRow(i+1);

    ChannelEntity channelEntity=channelEntityList.get(i);

    row.createCell(0).setCellValue(channelEntity.getChannelId());

    row.createCell(1).setCellValue(channelEntity.getName());

    row.createCell(2).setCellValue(channelEntity.getSort());

    }

    }

    sheet.setDefaultRowHeight((short) (16.5 *20));

    //列宽自适应

        for (int i =0; i <=channelEntityList.size() ; i++) {

    sheet.autoSizeColumn(i);

    }

    try {

    // 告诉浏览器用什么软件可以打开此文件

            response.setHeader("content-Type","application/vnd.ms-excel");

    // 下载文件的默认名称

            response.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode(fileName,"utf-8"));

    }catch (UnsupportedEncodingException e) {

    e.printStackTrace();

    }

    try{

    workbook.write(response.getOutputStream());

    }catch(Exception e){

    workbook.close();

    }

    }

    第五步:以上是简单实现过程(肯定能实现),运行即可,前端js调用后台就自己写吧,这个是个例,如果当业务中出现多个页面都需要此功能的话,可以写成工具类来解决,工具类的方法我也写好了,暂时没有上传,需要的话私聊即可,很乐意帮助大家!!!谢谢支持!

    相关文章

      网友评论

          本文标题:基于spring boot整合poi实现excel导出下载功能

          本文链接:https://www.haomeiwen.com/subject/phxurqtx.html