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;
	}

猜你喜欢

转载自p385579058.iteye.com/blog/1132081