java使用 freemarker 模板生成一个excel文件多个sheet

    /**
     * 导出Excel
     * @param request
     * @param
     * @return
     */
    @RequestMapping(value = "/jsp/map/导出.do", method = RequestMethod.POST)
    @ResponseBody
    public String  sxdcjgghbToExcel(HttpServletRequest request,
            HttpServletResponse response,
            @RequestParam("zzdwdm") String zzdwdm,
            @RequestParam("outType") String outType) {
        try {
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8"); 
                //开始传入数据
//               Map map = new HashMap();
                 //生成excel的简单的类
                 XLSTransformer transformer = new XLSTransformer();
                 String modelExl = "";
                 //获取模板路径
                 modelExl = request.getSession().getServletContext().getRealPath("模板文件夹")+"\\"+xjzzdwqc;
                 //模板的本地地址
                 String templateFileName = "";
                 templateFileName = modelExl+"\\文件.xls";
                 //读取进来
                 FileInputStream is = new FileInputStream(templateFileName); 
                 String excels = request.getSession().getServletContext().getRealPath("excels");
                 String destFileName = excels+"\\"+nh.get(0).getZzdwqc()+"文件夹\\";
                 File file = new File(excels+"\\"+nh.get(0).getZzdwqc()+"文件夹");
                 //判断文件是否存在存在删除用到公共方法
                 if (file.exists()) {
                     deleteAll(file);
                     file.mkdirs();
                 }else{
                     file.mkdirs();
                 }
                 //sheet表的名字
                 List listSheetNames = new ArrayList(); 
                 //加载数据
                 ArrayList t1 = new ArrayList();
                 for(int x = 0;x//System.out.println(nh.get(x).getCbfXM()+nh.get(x).getCbfBH());
                     listSheetNames.add(nh.get(x).getCbfXM()+nh.get(x).getCbfBH());
                 }
                 //记得貌似没用(待议)
//               map.put("nh", t1);
                 //固定格式 is-模板 t1-数据 listSheetNames-sheet表名字 nh-在文件取得别名nh.获取  HashMap以map存储
                 Workbook workbook = transformer.transformMultipleSheetsList(is, t1, listSheetNames, "nh", new HashMap(), 0);
                 HSSFSheet fromsheet = (HSSFSheet) workbook.getSheetAt(0);
                 //是否合并单元格
                /* for(int s=0;s
                 //输出文件
                 OutputStream os = new BufferedOutputStream(new FileOutputStream(excels+"\\"+"文件夹\\"+"文件.xls")); 
                 workbook.write(os); 
                 os.flush(); 
                 os.close(); 
                 is.close();
                 //清除数据
//               map.remove("nh");
//               map.clear();

//               for(int i = 0;i
//                  map.put("nh", nh.get(i));
//                  transformer.transformXLS(templateFileName, map, destFileName+nh.get(i).getCbfBH()+nh.get(i).getCbfXM()+".xls");
//                  map.remove("nh");
//               }

        } catch (Exception e) {
            e.printStackTrace();
            return "IoError";
        }

    }

你可能感兴趣的:(java,excel,freemarker,java,freemarker,excel)