zoukankan      html  css  js  c++  java
  • 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();

            }

  • 相关阅读:
    《Python编程:从入门到实践》第四章 操作列表 习题答案
    Linux学习笔记(十六)Linux网络管理:网络基础(一)
    《Python编程:从入门到实践》第三章 列表简介 习题答案
    《Python编程:从入门到实践》第二章 变量和简单数据类型 习题答案
    想要上网满速?安装200兆以上宽带后请做到这几点
    从编程小白到入门码农的五个途径
    一行终端命令干掉一个小型网站
    用Python讲述冯绍峰和赵丽颖的爱情故事
    Python: 如何判断远程服务器上Excel文件是否被人打开
    Python: Django简介
  • 原文地址:https://www.cnblogs.com/rdchen/p/10245142.html
Copyright © 2011-2022 走看看