java导出word,输出到浏览器下载 |
您所在的位置:网站首页 › 金山文档的文件怎么下载到浏览器上 › java导出word,输出到浏览器下载 |
网上介绍的方法都挺好,网上一搜也一大把,我用的是制作模板的那个方法,还挺好用的,现在分享一下。 先找一个教程,制作一个模板,然后就是测试: 代码它来了, public class WordTest { private Configuration configuration = null; public WordTest(){ configuration = new Configuration(); configuration.setDefaultEncoding("UTF-8"); } public static void main(String[] args) { WordTest test = new WordTest(); test.createWord(); } public void createWord(){ Map dataMap=new HashMap(); getData(dataMap); configuration.setClassForTemplateLoading(this.getClass(), "");//模板文件所在路径 Template t=null; try { t = configuration.getTemplate("测试.ftl"); //获取模板文件 } catch (IOException e) { e.printStackTrace(); } File outFile = new File("D:/outFile"+Math.random()*10000+".doc"); //导出文件 Writer out = null; try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile))); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { t.process(dataMap, out); //将填充数据填入模板文件并输出到目标文件 } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } private void getData(Map dataMap) { dataMap.put("title", "标题"); dataMap.put("nian", "2016"); dataMap.put("yue", "3"); dataMap.put("ri", "6"); dataMap.put("shenheren", "lc"); List list = new ArrayList(); for (int i = 0; i < 10; i++) { Map map = new HashMap(); map.put("xuehao", i); map.put("neirong", "内容"+i); list.add(map); } dataMap.put("list", list); } }
成了。 还可以直接输出到浏览器。 只需要添加
response.setContentType("application/x-msdownload;"); response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("文件名", "UTF-8") + ".doc"); 然后其中的createWord()方法就成了下面这个代码: public void createWord(HttpServletResponse resp){ Map dataMap=new HashMap(); getData(dataMap); configuration.setClassForTemplateLoading(this.getClass(), "");//模板文件所在路径 Template t=null; try { t = configuration.getTemplate("测试.ftl"); //获取模板文件 } catch (IOException e) { e.printStackTrace(); } //File outFile = new File("D:/outFile"+Math.random()*10000+".doc"); //导出文件 Writer out = null; response.setContentType("application/vnd.ms-excel"); response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode("文件名", "UTF-8") + ".doc"); try { //out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile))); out = new BufferedWriter(new OutputStreamWriter(response.getOutputStream())); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { t.process(dataMap, out); //将填充数据填入模板文件并输出到目标文件 } catch (TemplateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |