java使用 freemarker 模板生成一个excel文件多个sheet
2016-08-05 18:53
841 查看
/** * 导出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"; } }
相关文章推荐
- java 生成excel利器!基于jxls2写的jxls增强版jxlss。使用excel模板生成excel文件
- java 使用itextpdf.jar和itext-asian.jar根据pdf模板填写数据后生成一个新的pdf文件
- 使用JXL来生成一个Excel文件
- 一个简单生成Excel文件格式的java包。
- JAVA使用Freemarker生成静态文件中文乱码
- java使用 freemarker 模板生成word文件
- 一个使用自定义命名空间的Schema文件,xml文件和castor生成的java代码的例子
- 如何使用JavaExcel(jxl)读取一个文件并写入一个新文件
- java 利用 poi 生成 Excel文件与spring使用文件流形式下载文件
- Java生成excel导出文件(使用poi+JXL)
- 使用FreeMarker模板生成java代码的例子
- Soy文件生成JS文件 - 一个使用Google soy模板的例子
- 开源jxls - java导Excel(多sheet) - 模板文件定义类似jsp的el表达式
- JAVA生成一个excel文件
- 开源jxls - java导Excel(多sheet) - 模板文件定义类似jsp的el表达式
- 使用JAVA通过JXL(JExcel)动态生成Excel文件 转载至台湾某博客
- java使用freemarker模版下载成Excel文件
- java poi 通过excel模板导出并且生成多个sheet
- Java基础系列19:使用JXL或者POI生成和解析Excel文件
- java poi 通过excel模板导出并且生成多个sheet