freemarker word

87201943 2020-02-21

Map<String, Object> map = new HashMap<String, Object>();
        Projset projset = projsetService.findById(id);
        String sql = "select * from urm_user where id=" + "‘" + projset.getManager() + "‘";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        map.put("manager", list.get(0).get("FULLNAME"));
        map.put("projsetname", projset.getPname());
        map.put("cnum", projset.getCnum());
        createWord(map, "entryprogressword.ftl", "D:/wordFile/", "项目经理任命书.doc");
/**
     * 生成word文件
     * @param dataMap word中需要展示的动态数据,用map集合来保存
     * @param templateName word模板名称,例如:test.ftl
     * @param filePath 文件生成的目标路径,例如:D:/wordFile/
     * @param fileName 生成的文件名称,例如:test.doc
     * @throws IOException 
     */
    @SuppressWarnings("unchecked")
    public void createWord(Map dataMap,String templateName,String filePath,String fileName){
        try {
            //创建配置实例 
            Configuration configuration = new Configuration();
            //设置编码
            configuration.setDefaultEncoding("UTF-8");
            //ftl模板文件统一放至 com.lun.template 包下面
            configuration.setClassForTemplateLoading(this.getClass(),"../template");
            //获取模板 
            Template template = configuration.getTemplate(templateName);
            //输出文件
            File outFile = new File(filePath+File.separator+fileName);
            //如果输出目标文件夹不存在,则创建
            if (!outFile.getParentFile().exists()){
                outFile.getParentFile().mkdirs();
            }
            //将模板和数据模型合并生成文件 
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile),"UTF-8"));
            //生成文件
            template.process(dataMap, out);
            //关闭流
            out.flush();
            out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

相关推荐