poi 实战代码---导出Excel(根据模板导出)

/**

     * 导出excel

     * @param request  

     * @param response

     * @return

     * @throws Exception

     */

    @RequestMapping("exportExcel")

    @Action(description="导出excel")

    public void exportExcel(HttpServletRequest request, HttpServletResponse response) throws Exception

    {

       //获取实体类,并取得时刻点的值,存放到map里面

           String  id = RequestUtil.getString(request,"id");

            LoadDate ld = new LoadDate();

            ld = loadDateService.getById(Long.parseLong(id));

            String mapVal = ld.getValue();

            JSONObject json = JSONObject.fromObject(mapVal);

            Map<String,String> map = new HashMap<String,String>();

            if (BeanUtils.isNotEmpty(json)) {

            Iterator<String> iterator = json.keys();

                while (iterator.hasNext()) {

               String ie = (String) iterator.next();

               map.put(ie, json.getString(ie));

                }

            }

            String dirPath = FileUtil.getRootPath() + File.separator+"commons" +File.separator+"template"+File.separator+"exportMode"+File.separator;

           String fileName="loadTemplate.xls";

            FileInputStream inStream = new FileInputStream(new File(dirPath+fileName));

            //读取excel模板 

            HSSFWorkbook wb = new HSSFWorkbook(inStream);    //读取excel模板  

            //读取了模板内所有sheet内容 

            HSSFSheet sheet = wb.getSheetAt(0); 

            HSSFCell cell = null;

            //在相应的单元格进行赋值 

            for(int i=2;i<=97;i++){

                cell = sheet.getRow(i).getCell(1);

                String tmp = cell.getStringCellValue();

                cell.setCellValue(map.get(tmp)); 

            }

           

            for(int i=98;i<=102;i++){

                cell = sheet.getRow(i).getCell(1);

                String tmp = cell.getStringCellValue();

               

                if("ycgfdl".equals(tmp)){

                   if(BeanUtils.isNotEmpty(ld.getYcgfdl())){

                       cell.setCellValue(ld.getYcgfdl()); 

                   }else{

                       cell.setCellValue(""); 

                   }

                }else if("ycqdl".equals(tmp)){

                   if(BeanUtils.isNotEmpty(ld.getYcqdl())){

                       cell.setCellValue(ld.getYcqdl()); 

                   }else{

                       cell.setCellValue(""); 

                   }

                }else if("yccfdLi".equals(tmp)){

                   if(BeanUtils.isNotEmpty(ld.getYccfdLi())){

                       cell.setCellValue(ld.getYccfdLi()); 

                   }else{

                       cell.setCellValue(""); 

                   }

                }else if("yccfdLl".equals(tmp)){

                   if(BeanUtils.isNotEmpty(ld.getYccfdLl())){

                       cell.setCellValue(ld.getYccfdLl()); 

                   }else{

                       cell.setCellValue(""); 

                   }

                }else if("ycdgdl".equals(tmp)){

                   if(BeanUtils.isNotEmpty(ld.getYcdgdl())){

                       cell.setCellValue(ld.getYcdgdl()); 

                   }else{

                       cell.setCellValue(""); 

                   }

                }

            }

           

            response.setContentType("application/octet-stream;charset=UTF-8");

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

            response.setHeader( "Content-Disposition", "attachment;filename=" + new String( fileName.getBytes("GB2312"), "8859_1" ));

            response.addHeader("Pargam", "no-cache"); 

            response.addHeader("Cache-Control", "no-cache");

            OutputStream out = response.getOutputStream();   

            wb.write(out);

            out.flush();   

            out.close();

        }

原文地址:https://www.cnblogs.com/rdchen/p/10245142.html