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

            }

  • 相关阅读:
    SQL server 日期格式转换style 对应码
    postman的使用方法详解!最全面的教程
    港澳台身份证小结
    使用设置自定义对话框的大小,位置,样式以及设置在安卓桌面上弹出对话框
    android自定义Activity窗口大小(theme运用)
    C#调用RabbitMQ实现消息队列
    C# http请求带请求头部分
    Android如何屏蔽home键和recent键
    针对jquery的优化方法,你知道几条
    试图从目录中执行 CGI、ISAPI 或其他可执行程序
  • 原文地址:https://www.cnblogs.com/rdchen/p/10245142.html
Copyright © 2011-2022 走看看