java velocity 解析mht模板导出word

最近项目需要,生成的数据需要按照word 模板去生成相应的word文档。差了几个资料。发现以下两个博客解决了项目上的需求。地址如下

Java中根据模板导出数据到word的解决方案

http://blog.csdn.net/myyate/article/details/2049701

 

另一个是

jsp结合Velocity依据Word模板文件产生对应的数据文件

 http://blog.csdn.net/Matol/article/details/6052555

 

部署tomcat项目可以参考

 

http://www.ibm.com/developerworks/cn/java/j-velocity/#5

 

 velocity  vm 模板 根据word另存为 mht文件后。修改mht代码 生成vm文件即可

 服务器部分代码如下:

public String execute() throws Exception {
		ServletRequest request = ServletActionContext.getRequest();
		HttpServletResponse response =   ServletActionContext.getResponse();
		String sjid = (String) request.getParameter("sjid");
		dhjldVo = this.dhjlManager.get(sjid);
 		// 初始化并取得Velocity引擎
		VelocityEngine ve = new VelocityEngine();
		// 取得velocity的模版 
	    // String fileDir = DhjlQueryAction.class.getResource("/template").getPath();
		Properties properties = new Properties();
		//System.out.println("fileDirfileDi~~~"+fileDir);
		properties.setProperty(ve.FILE_RESOURCE_LOADER_PATH,"\\template\\"); 
		//指定,如"D:/template",但记住只要指定到文件夹就行了
		ve.init(properties);   //初始化
		 取得velocity的模版   如果有汉字 用 GBK  否则可能出现乱码
		Template t = ve.getTemplate("hellovelocity.vm","GBK");//此处只要指明文件名就可以了.
		// 取得velocity的上下文context
		VelocityContext context = new VelocityContext();
		// 把数据填入上下文
		context.put("name", "潘");
		context.put("date", (new Date()).toString());
		// 为后面的展示,提前输入List数值
		List temp = new ArrayList();
		temp.add("1");
		temp.add("2");
		context.put("list", temp);
		// 输出流  注释部分代码为 将流写入到服务器的文件
	   /* PrintWriter writer = new PrintWriter("E://单点登录.doc","UTF-8");    
		t.merge(context, writer);
		writer.flush();    
	    writer.close(); */   
		//此部分代码为 生产一个下载流    客户端页面会 弹出 另存为的对话框
        response.setHeader("content-disposition", "attachment;filename=ldws.doc" );    
		response.setContentType("application/msword;");
		response.setCharacterEncoding("GBK");
		StringWriter  writer =new StringWriter();
	    // 转换输出
	    t.merge(context, writer);
		response.getOutputStream().print(writer.toString());
		return null;
	}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值