java使用 freemarker 模板生成word文件

本文介绍了一个使用Freemarker模板引擎的应用实例,包括配置环境、加载模板、填充数据并生成文档的过程。通过示例代码展示了如何利用Freemarker进行文档的批量生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class 类的名字{
    private Configuration configuration = null;
    public 类的构造方法() {
      configuration = new Configuration();
      configuration.setDefaultEncoding("UTF-8");
    }
        // 要填入模本的数据文件
Map<String, Object> dataMap = new HashMap<String, Object>();
        //项目的真实路径
        String cxpath = request.getSession().getServletContext().getRealPath("/");
        //模板的获得路径
        String dir = cxpath+ "具体的位置";
        Template t = null;
        //模板的名称
        String fileName="";
        try {
                //从什么地方加载freemarker模板文件 
                configuration.setDirectoryForTemplateLoading(new File(dir)); 
                //设置对象包装器 
                configuration.setObjectWrapper(new DefaultObjectWrapper()); 
                //设置异常处理器 
                configuration.setTemplateExceptionHandler(TemplateExceptionHandler.IGNORE_HANDLER); 
                //定义Template对象 
                t = configuration.getTemplate(fileName);
             } catch (IOException e) {
                 res = "freemarker模块错误!";
             }
    }     
            File folder = new File(地址);
        //使用了工具类判断文件夹是否存在
        if(!folder.exists()){
            folder.mkdir();
        }else{
            if(folder.isDirectory()){
                for(File o:folder.listFiles()){
                    o.delete();
                }
            }
        }
//        OpenOffice office2pdf = new OpenOffice();
        for(int i=0;i<list.size();i++){
            // 输出文档路径及名称数据加载
            dataMap = (Map)list.get(i);
            File outFile = new File(文件地址及名称+".doc");
            Writer out = null;
            try {
                out = new BufferedWriter(new OutputStreamWriter(
                new FileOutputStream(outFile),"utf-8"));
            } catch (Exception e1) {
                e1.printStackTrace();
            }
            try {//数据导入
                t.process(dataMap, out);
                out.close();
            } catch (TemplateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值