1、首先,新建一个word文档:里面写需要下载的东西

2、编辑完后,另存为xml格式(不用管xml里面是什么),然后将后缀名xml改为ftl

3、这个ftl就是在Java代码中可生成word的模板文件了

进入前端代码模块:

<input type="button" class="btn_default" onclick="createSchoolWord();" value="导出word报表"/></br></br>//下载
function createSchoolWord() {window.location.href=path+"/web/api/word/createSchoolWord?accessToken=${accessToken}"}

进入后端代码部分:

/*** 一键生成全校分析报告* @param response*/@ResponseBody@RequestMapping("/createSchoolWord")public void createSchoolWord(HttpServletRequest request,HttpServletResponse response) {Map<String, Object> map = new HashMap<String, Object>();try {//1、全校共有多少人map.put("studentNum",studentNum);//2、非常异常多少人map.put("veryUnusualNum",veryUnusualNum);//3、一般异常多少人map.put("generalUnusualNum",generalUnusualNum);//4、正常多少人map.put("normalNum",normalNum);//5、在同类型高校中处于什么水平map.put("sameSchoolLevel",sameSchoolLevel);//6、全校本学期共有多少人被辅导map.put("guidanceNum",guidanceNum);//7、从全校看,问题较严重的有几个方面:社交、经济、感情map.put("aspectsSerious",aspectsSerious);//8、各个问题的排序map.put("aspectSort",aspectSort);//map----------------------------------------------------------endInputStream inputStream = DocumentHandler.createSchoolWord(map);response.setContentType("application/zip");OutputStream out = response.getOutputStream();response.setHeader("Content-Disposition", "attachment; filename="+"schoolReport"+".doc");int b = 0;byte[] buffer = new byte[1000000];while (b != -1) {b = inputStream.read(buffer);if(b!=-1) out.write(buffer, 0, b);}inputStream.close();out.close();out.flush();} catch (IOException e) {e.printStackTrace();logger.error("下载失败");}}
DocumentHandler代码如下:

生成临时文件,并返回流,其中schoolReport.ftl就是上文1、2、3说的生成word的模板文件,放在resources下的templates目录下

/*** 生成全校分析报告* @param map 数据*/public static InputStream createSchoolWord(Map<?, ?> map) {InputStream inputStream = null;try {String templateName = "schoolReport.ftl";Configuration configuration = new Configuration();configuration.setDefaultEncoding("UTF-8");// ftl模板文件configuration.setClassLoaderForTemplateLoading(DocumentHandler.class.getClassLoader(),"/templates/");// 获取模板Template template = configuration.getTemplate(templateName);File outFile = File.createTempFile("schoolReport", ".doc");outFile.deleteOnExit();// 将模板和数据模型合并生成文件Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outFile), "UTF-8"));// 生成文件template.process(map,out);out.flush();out.close();inputStream = new FileInputStream(outFile);} catch (Exception e) {e.printStackTrace();}return inputStream;}

SpringCloud之利用FTL生成Word报表并下载相关推荐

  1. word模板生成word报表文档

    主要功能为根据word模板生成word报表文档,注意引用Interop.Word.dll; 首先要生成word程序对象 Word.Application app = new Word.Applicat ...

  2. apache poi使用例_使用java Apache poi 根据word模板生成word报表例子

    [实例简介] 使用java Apache poi 根据word模板生成word报表 仅支持docx格式的word文件,大概是word2010及以后版本,doc格式不支持. 使用说明:https://b ...

  3. 使用java Apache poi 根据word模板生成word报表

    使用java Apache poi 根据word模板生成word报表 使用poi读取word模板,替换word中的{text}标签,并根据自定义标签循环生成表格或表格中的行. 代码示例下载:https ...

  4. matlab 生成 word 表格,利用MATLAB生成Word文档.doc

    利用MATLAB生成Word文档 function ceshi_Word %利用MATLAB生成Word文档 % ceshi_Word % % Copyright 2009 - 2010 xiezhh ...

  5. php实现生成word表格,TP5利用phpforword生成word表格文档

    TP5利用phpforword生成word表格文档 2019-12-18 573 1.首先用composer安装下载 phpoffice/phpforwordcomposer require phpo ...

  6. Java利用poi生成word(包含插入图片,动态表格,行合并)

    Java利用poi生成word(包含插入图片,动态表格,行合并) 测试模板样式: 图表 1 Word生成结果: 图表 2 需要的jar包:(具体jar可自行去maven下载) Test测试类: imp ...

  7. matlab2015 word,利用MATLAB生成Word文档

    <利用MATLAB生成Word文档>由会员分享,可在线阅读,更多相关<利用MATLAB生成Word文档(5页珍藏版)>请在人人文库网上搜索. 1.function ceshi_ ...

  8. 使用freemarker插件,在浏览器生成word并提供下载

    使用freemarker插件,在浏览器生成word并提供下载 欢使用freemarker生成复杂的word 1.使用freemarker需要注意的点 2.freemarker自动生成并下载到本地的wo ...

  9. 帝国cms把网站文章内容生成word文档下载插件

    帝国cms把网站文章内容生成word文档下载插件 插件介绍 jQuery Word Export是一款可以将网页中的文字导出到微软Word文档中的jQuery插件.它通过FileSaver.js文件来 ...

最新文章

  1. GitHub开源蔡徐坤打篮球
  2. 06年编写的E阳指源码V1.7大放送
  3. Xamarin Essentials教程使用加速度传感器Accelerometer
  4. 一、认识Python
  5. 【工业4.0】什么是工业4.0,这篇文章讲得明明白白!
  6. 那些在大厂做外包的测试工程师,后来发展怎么样了?
  7. 【数据结构】堆的手动模拟实现
  8. Android连点器(adb)
  9. 想知道PDF转Word软件哪个好?向你推荐3个自用软件
  10. Java初级工程师的面试自我介绍模板(仅供参考)
  11. 论初唐诗人的历史地位-上官仪、王勃、杨炯、陈子昂、杜审言
  12. python 使用h5py 中遇到的问题
  13. Matlab中grid函数的用法
  14. 【BUCTOJ训练:字符串最大跨距(Python)】
  15. 《嵌入式 - Lwip开发指南》第5章 LWIP测速
  16. PMOS与NMOS的区别
  17. SAP中标准外协加工中成品收货时下级组件反冲利润中心确定控制逻辑
  18. 【AcWing】AcWing 2. 01背包问题
  19. 冬季宝宝喝什么最健康?
  20. 电子数据证据的证据能力及证明力研究

热门文章

  1. drv8833 马达控制
  2. linux 写操作系统 pdf,Linux操作系统概述.pdf
  3. 【第3期赠书活动】〖Python 数据库开发实战 - Python与Redis交互篇⑬〗- 综合案例 - 新闻管理系统 - 编辑新闻(编辑角色权限)
  4. VS Code 也能预览 Markdown - 一个无意中发现的小技巧
  5. 万用表的使用方法,焊接
  6. java ssm羽毛球馆管理和交流平台系统
  7. 计算机专业不会编程怎么找工作?
  8. Android实现APK智能安装且安装后自启动,亲测有用!
  9. 老毛桃重启计算机没反应,老毛桃怎么用
  10. 知乎问题:北京,2017,多少k的java web程序员应该懂多线程和jvm优化?