freemarker学习+集成springboot+导出word

这篇具有很好参考价值的文章主要介绍了freemarker学习+集成springboot+导出word。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一 FreeMarker简介

二 集成springboot,实现案例导出

三 常见面试题总结


一 FreeMarker简介

FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 是一个Java类库。

二 集成springboot,实现案例导出

在本地磁盘随便准备一个文件,内容体如下:

freemarker学习+集成springboot+导出word,各种技术框架,学习,spring boot,word

内容案例如下:

freemarker学习+集成springboot+导出word,各种技术框架,学习,spring boot,word

 代码实现:

 2.1 导入jar

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

2.2 新建FileController.java类,代码实现如下:

package com.yty.system.controller;


import com.alibaba.fastjson.JSONObject;
import freemarker.template.Configuration;
import freemarker.template.Template;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletResponse;
import java.io.*;

@RestController
@RequestMapping("/file")
@Api(tags = "文件管理api")
public class FileController {


    @GetMapping("exportPDF")
    @ApiOperation(value = "文件导出到PDF",notes = "文件导出到PDF")
    public void exportPDF(HttpServletResponse response) throws Exception{
        try {
            exportWord(response, "2012001.ftl", "/templates/ftl/");
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void exportWord(HttpServletResponse response, String templateName, String templatePath) throws Exception{
        Configuration configuration = new Configuration(Configuration.getVersion()); // 创建一个Configuration对象

        configuration.setClassForTemplateLoading(this.getClass(), templatePath);

        configuration.setDefaultEncoding("utf-8");

        //必须加此参数,否则任意key的值为空freemark都会报错
        configuration.setClassicCompatible(true);
        // 选择模板
        Template template = configuration.getTemplate(templateName); //加载模板

        // 导出文件名
        String fileName = System.currentTimeMillis() + ".doc";
        // 导出文件路径
        String path = "D:\\system\\ee\\模板\\" + fileName;
        // 创建文件
        File file = new File(path);

        Writer out = new FileWriter(file);
        // 填充数据
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("surveyPersonName", "孙悟空");
        jsonObject.put("createTime", "2012-09");

        //调用模板对象的process方法输出文件
        template.process(jsonObject, out);

        // 下载文件
        downloadFile(response, file, out);
    }

    public void downloadFile(HttpServletResponse response, File file, Writer out) throws Exception{
        // 下载文件
        byte[] buffer = new byte[1024];
        response.addHeader("Content-Disposition","attachment;filename=" + new String(file.getName().getBytes(), "ISO-8859-1"));
        FileInputStream fis = new FileInputStream(file);
        BufferedInputStream bis = new BufferedInputStream(fis);
        OutputStream os = response.getOutputStream();
        int i = bis.read(buffer);
        while (i != -1) {
            os.write(buffer, 0, i);
            i = bis.read(buffer);
        }
        // 关闭流
        os.close();
        bis.close();
        fis.close();
        out.close();
        file.delete();
    }
}

直接复制代码,运行结果:

freemarker学习+集成springboot+导出word,各种技术框架,学习,spring boot,word

 集成完毕,数据已填充,导出完毕

三 常见面试题总结

待补充...............文章来源地址https://www.toymoban.com/news/detail-689699.html

到了这里,关于freemarker学习+集成springboot+导出word的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot整合FreeMarker生成word表格文件(使用FTL模板)

    一,什么是FreeMarker,FTL模板? FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。 模板编写为

    2024年03月24日
    浏览(56)
  • Springboot集成Freemarker|超级详细,建议收藏

    上一期,我是带着大家入门了 SpringBoot集成Kafka ,今天我再来一期Freemarker的零基础教学吧。不知道大家对kafka有多少了解,反正我就是从搭建开始,然后再加一个简单演示,这就算是带着大家了个门哈,剩下的我再后边慢慢出教程给大家说。 演示环境:idea2021 + springboot 2.3.1

    2024年02月11日
    浏览(38)
  • SpringBoot导出Word文档的三种方式

    1、直接在Java代码里创建Word文档,设置格式样式等,然后导出。(略) 需要的见:https://blog.csdn.net/qq_42682745/article/details/120867432 2、富文本转换后的HTML下载为Word文档。相当于把HTML转为Word导出 3、使用模板技术导出。固定格式、可以写入不同数据 其他: springboot版本:2.7.11 导

    2024年02月02日
    浏览(55)
  • freemarker 使用word模板赋值

    这里贴上自己测试的ftl文件 生成的效果 参考: https://blog.csdn.net/weixin_46174854/article/details/116855252 https://blog.csdn.net/weixin_45853881/article/details/129298494 https://blog.csdn.net/qq_42851623/article/details/122879852 https://blog.csdn.net/weixin_45103378/article/details/118395284 https://www.cnblogs.com/ayueC/p/15118381.html

    2024年02月11日
    浏览(44)
  • 根据模板动态生成word(一)使用freemarker生成word

    @ 目录 一、准备模板 1、创建模板文件 2、处理模板 2.1 处理普通文本 2.2 处理表格 2.3 处理图片 二、项目代码 1、引入依赖 2、生成代码 三、验证生成word 首先先建立一个word文件,输入模板内容freemaker的内容,下面是本次演示的word文件。 然后将word文件另存为 .xml 文件,然后再

    2024年02月13日
    浏览(85)
  • freemarker模板生成的word文档优化

    使用压缩工具打开docx模板,取出document.xml,如下图: 将用压缩工具打开后的docx文档里面的document.xml复制出来,并将document.xml后缀改为.ftl,然后进行参数预设。 将内容格式化后修改需要替换的内容为freemarker标签,对document.ftl进行参数预设,如下图: 文件准备好后存放到某个

    2024年02月02日
    浏览(51)
  • freemarker模板操作excel或word

    二维码生成

    2024年01月18日
    浏览(39)
  • 基于Java+freemarker实现动态赋值以及生成Word文档

    有一个需求就是给定一个正确格式的 Word 文档模板,要求通过动态赋值方式,写入数据并新生成 该模板格式的 Word 文档。这很明显使用 Java+freemarker 方式来实现颇为简单。 (1)准备好一个正确格式的 Word 文档(测试文档 - 原版.docx) (2)将其另存为xml文件(测试文档 - 原版

    2024年02月09日
    浏览(47)
  • SpringBoot动态导出word文档(完美实整教程 复制即可使用,不能实现你找我)

    最近有一个需求是需要动态导出合同、订单等信息,导出一个word文档供客户进行下载查看。 需要导出的word文件,主要可以分为两种类型。 导出固定内容和图片的word文档 导出表格内容不固定的word文档 经过对比工具,我实践过两种实现方式。第一种是FreeMarker模板来进行填充

    2024年02月03日
    浏览(39)
  • 使用freemarker,导出制作好的ftl模板,并写入数据

    1.1 项目背景 最近在开发一个项目,需要导出一些数据,然后写入到word文档中,然后再导出到本地,这个需求是比较常见的,但是我在网上找了很多资料,都没有找到一个比较好的解决方案,所以就自己写了一个,这里分享给大家,希望能帮助到大家。 项目中使用的技术栈:

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包