velocity&java 完美解决word下载
2012-08-30 18:36
190 查看
开发步骤:
1、将定制好的word另存为xml格式,后缀改为.vm
2、在网站上找到 xml format online格式化xml,以便自己查找对应的位置填充velocity代码,
3、将要填充到word的数据变量用velocity'填充,完成后保存到相应的位置,
4、新建项目,导入velocity的包,新建类,主要代码如下:
5、测试成功
总结:1、该方案的局限性:根据已有的模版填充数据下载比较方便,不能绘制自定义的word.
2、模板引擎freemarker也测试了,同样可达到效果
1、将定制好的word另存为xml格式,后缀改为.vm
2、在网站上找到 xml format online格式化xml,以便自己查找对应的位置填充velocity代码,
3、将要填充到word的数据变量用velocity'填充,完成后保存到相应的位置,
4、新建项目,导入velocity的包,新建类,主要代码如下:
VelocityEngine ve = new VelocityEngine(); //实例化velocity String modulePath = "d:/path"; ve.setProperty(Velocity.FILE_RESOURCE_LOADER_PATH,modulePath );//这句不设置的话会导致 file not found Exception ve.setProperty(Velocity.INPUT_ENCODING,"utf-8"); //设置输入输出流的编码格式 ve.setProperty(Velocity.OUTPUT_ENCODING,"utf-8"); try { ve.init(); Template tem = ve.getTemplate("exportAliExpressModule.vm"); //得到模版内容 VelocityContext context = new VelocityContext(); VelocityContext用来存取数据,相当于一个map类型的容器 context.put("list", allList); StringWriter writer = new StringWriter(); tem.merge(context, writer); //velocity填充数据 response.reset(); //下载实现 response.setContentType("application/download"); response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); response.setHeader("Content-disposition", "attachment;filename="+new String("需要的word.doc".getBytes(), "ISO8859-1")); OutputStream toClient = response.getOutputStream(); toClient.write(writer.toString().getBytes("utf-8")); //切记在此设置输出文件的编码格式,在此纠结了两天 toClient.flush(); toClient.close(); } catch (Exception e) { e.printStackTrace(); }
5、测试成功
总结:1、该方案的局限性:根据已有的模版填充数据下载比较方便,不能绘制自定义的word.
2、模板引擎freemarker也测试了,同样可达到效果
相关文章推荐
- 完美的java解决下载文件问题
- Flex+Java组合解决汉字或特殊符号(如&等)文件下载时的文件名乱码问题
- js提交java后台,双引号转义为"解决办法……StringEscapeUtils.unescapeHtml4完美解决
- Java解决 过河问题
- 【问题&解决】解决 Android SDK下载和更新失败“Connection to https://dl-ssl.google.com refused”的问题
- 项目实战—— 类型java.lang.charsequence不能解决(完美解决!)
- 完美解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- Java环境变量配置&解决版本不一致问题详解
- 如何解决 tomcat 下 oracle 缓冲池 读取 clob 字段内容 时的错误 "java.lang.ClassCastException: org.apache.commons.dbcp.DelegatingResultSet "
- java版txt文件下载解决
- java爬虫爬取的html内容中空格( )变为问号“?”的解决方法
- ASP.NET中引用dll“找不到指定模块"的完美解决办法
- Neither the JAVA_HOME nor the JRE_HOME environment variable is defined 完美解决(tomcat error)
- java 下载文件 兼容 ie 火狐 google 浏览器 ,解决下载文件乱码问题
- 完美解决Java程序在 MOTO E680i 中声音文件播放
- 多线程--Python下载(支持断点续传) & Java多线程计算矩阵乘法
- 完美解决gradle下载慢的问题
- velocity根据模板导出word并下载工具方法
- 解决Exception in thread "main" java.lang.OutOfMemoryError: Java heap space问题
- 完美解决Java获取文件路径出现乱码的问题