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

来源:互联网 发布:c语言usleep函数 编辑:程序博客网 时间:2024/06/05 17:41
    /**     * 导出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<String,Object> map = new HashMap<String,Object>();                 //生成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<String> listSheetNames = new ArrayList<String>();                  //加载数据                 ArrayList<TdcbJyqQqTzdjXx_NH> t1 = new ArrayList<TdcbJyqQqTzdjXx_NH>();                 for(int x = 0;x<nh.size();x++){                     t1.add(nh.get(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<workbook.getNumberOfSheets();s++){                     workbook.getSheetAt(s).setMargin(HSSFSheet.TopMargin,fromsheet.getMargin(HSSFSheet.TopMargin));                     workbook.getSheetAt(s).setMargin(HSSFSheet.BottomMargin,fromsheet.getMargin(HSSFSheet.BottomMargin));                     workbook.getSheetAt(s).setMargin(HSSFSheet.LeftMargin,fromsheet.getMargin(HSSFSheet.LeftMargin));                     workbook.getSheetAt(s).setMargin(HSSFSheet.RightMargin,fromsheet.getMargin(HSSFSheet.RightMargin));                     for(int w=0;w<8;w++){                         workbook.getSheetAt(s).setColumnWidth(w,workbook.getSheetAt(0).getColumnWidth(w));                     }                 }*/                 //输出文件                 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<nh.size();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";        }    }
0 0
原创粉丝点击