您现在的位置是:网站首页> 编程资料编程资料

jsp按格式导出doc文件实例详解_JSP编程_

2023-05-25 229人已围观

简介 jsp按格式导出doc文件实例详解_JSP编程_

jsp按格式导出doc文件实例详解

原理:doc文件其实可以保存为xml文件,该xml文件用字符串表示了doc文件的表现形式,我们只需要用Java将那些要填的内容替换掉然后下载给客户就行了。

1.首先是按照你的文档填写好数据。
2.将文档另存为xml文件,然后编辑该xml文件,将填好的内容用某种格式替换,如:将名字张三替换成${name}
3.读取文件,将文件中的${name}替换成真正的名字。
4.下载。

接下来看代码:

首先是那个转换类

 package com.my.util; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.util.Iterator; import java.util.Map; public class DowloadDocByTemplate { public InputStream dowload(String templatePath,Map map) throws IOException{ File file = new File(templatePath); StringBuffer sb = new StringBuffer(); BufferedReader br; br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8")); String s; while ((s = br.readLine()) != null) { sb.append(s); } br.close(); s = sb.toString(); Iterator keys = map.keySet().iterator(); while(keys.hasNext()) { String key = (String) keys.next(); s=s.replace(key, (String) map.get(key)); } return new ByteArrayInputStream(s.getBytes("UTF-8")); } } 

然后是action:

 /** * 检查下载权限 * @return */ public String downLoadcheck(){ return SUCCESS; } public String getTargetFileName(){ return "zengguoqg.doc"; } public InputStream getInputStream(){ //ExportToWordUtil etw = new ExportToWordUtil(); StringBuffer carnumber = new StringBuffer(""); String s1 = "" + "" + ""; String number = "450981199202073518"; char[] ch = number.toCharArray(); for(int i =0;i"); } carnumber.append(""); Map map = new HashMap(); map.put("${name}","曾强"); map.put("${sex}","男"); map.put("${writeDate}", "2014.1.2"); map.put("${cardNumber}", "1100106"); map.put("${personNumber}", carnumber.toString()); map.put("${birthday}", "2014.1.2"); map.put("${Education}", "本科"); map.put("${marride}", "未婚"); map.put("${comeFrom}", "广西"); map.put("${nation}", "汉族"); map.put("${ResidenceAddress}", "广西"); map.put("${PostalCode}", "543002"); map.put("${QQ}", "1104566175"); map.put("${job}", "软件工程师"); map.put("${politicalStatus}", "政治面貌"); map.put("${GraduateSchool}", "学院"); map.put("${professional}", "软件工程"); map.put("${beginWorkTime}", "2014.1.2"); map.put("${bankCarNumber}", "622709"); map.put("${emergencyContactPerson}", "曾强"); map.put("${relationship}", "同学"); map.put("${ummoveTelephone}", "0774133"); map.put("${mobilePhone}", "1350335"); map.put("${adreess}", "广西"); map.put("${mainExperience}", "无工作"); map.put("${favoriteAndGoodAt}", "喜欢打篮球"); String path = ServletActionContext.getServletContext().getRealPath("/fileTemplate/renyuandengjibiao2.xml"); System.out.println(path); //return etw.export(path, "test.xml", map, "out.doc"); try { return new DowloadDocByTemplate().dowload(path, map); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } } 

最后是Strut配置下载: 

application/ZIPinputStreamfilename="${targetFileName}"4096

完了,就这些了。xml文件我放在WebRoot/fileTemplate/renyuandengjibiao2.xml。

如有疑问,请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

-六神源码网