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 dirPath = xxx.class.getResource("/").getPath() + File.separator+"commons" +File.separator+"template"+File.separator+"exportMode"+File.separator;//xxx是当前类名

           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();
        }
 

 

posted @ 2019-01-09 16:21  爱跳舞的程序员  阅读(6260)  评论(0编辑  收藏  举报