WORD模板替换,将文件给前端下载

这篇具有很好参考价值的文章主要介绍了WORD模板替换,将文件给前端下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

WORD模板替换,将文件给前端下载,前端,java

1.word模板设计填充字段加{{填充字段名}}

2.后端依赖

<poi-tl.version>1.7.3</poi-tl.version>
<poi.version>4.1.2</poi.version>
<dependency>
    <groupId>com.deepoove</groupId>
    <artifactId>poi-tl</artifactId>
    <version>${poi-tl.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>${poi.version}</version>
</dependency>

3.后端代码

3.1工具类

package com.ruoyi.common.utils.poi;

import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.config.Configure;
import com.deepoove.poi.policy.HackLoopTableRenderPolicy;
import com.ruoyi.common.utils.uuid.UUID;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.nio.file.Paths;

public class WordUtil {

    public static void test(Object data, String filePath, HttpServletResponse response) {
        HackLoopTableRenderPolicy policy = new HackLoopTableRenderPolicy();
        Configure config = Configure.newBuilder().bind("list", policy).build();
        XWPFTemplate template = XWPFTemplate.compile(filePath, config).render(data);//调用模板,填充数据
        /*src\main\resources\wordTemplate\test.docx*/
        String uuid = UUID.randomUUID().toString();
        try {

            FileOutputStream out = new FileOutputStream("C:\\Users\\ZDHS\\Desktop\\"+uuid+".docx");//要导出的文件名
            template.write(out);
            out.flush();
            out.close();
            template.close();
            /*==*/
            String fileName = "Operator.docx"; // 文件的默认保存名
            // 读到流中
            InputStream inStream = new FileInputStream("C:\\Users\\ZDHS\\Desktop\\"+uuid+".docx");// 文件的存放路径
            // 设置输出的格式
            response.reset();
            response.addHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
            // 循环取出流中的数据
            byte[] b = new byte[100];
            int len;
            try {
                while ((len = inStream.read(b)) > 0)
                    response.getOutputStream().write(b, 0, len);
                inStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            /*==*/

        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            Files.delete(Paths.get("C:\\Users\\ZDHS\\Desktop\\" + uuid + ".docx"));
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

3.2接口类

//@PreAuthorize("@ss.hasPermi('system:selection:export')")
//@Log(title = "技术参数", businessType = BusinessType.EXPORT)
@PostMapping("/wordTemplate")
public void wordTemplate(HttpServletResponse response, HttpServletRequest request, HistoryVo history) {
    /*todo:处理数据*/
    WordUtil.test(history,"todo:文件路径",response);
}

4.前端事件方法

handleDownload(row) {

      this.queryParams = row

      console.log(row)

      this.download('system/selection/wordTemplate', {

        ...this.queryParams

      }, `selection_${new Date().getTime()}.docx`)

    },文章来源地址https://www.toymoban.com/news/detail-546463.html

到了这里,关于WORD模板替换,将文件给前端下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Word模板替换,并转PDF格式输出

    Poi-tl参考文档地址:http://deepoove.com/poi-tl/1.8.x/#hack-loop-table         绿色部分是直接渲染的,对应map中的key-value,蓝色部分是绑定collections对象,进行遍历循环集合数据         转换的pdf有水印,去水印很方便, 加载License(要买)即可 封装一个工具类 https://blog.csdn.net

    2024年02月11日
    浏览(27)
  • Java根据word模板生成word文档并转成PDF文件

    定义完我们的模板之后,我们要将文档保存为xml的格式 生成的xml格式看起来比较乱,没有层次感, 所以需要格式化一下 格式化 基础信息的定义 基础信息的定义只要保证我们转化成的xml文件中的${name}等格式没错误即可 表格的定义 遍历实现,表格的数据填充 在xml文件中我们的

    2024年02月09日
    浏览(43)
  • 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)

    这篇文章,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarker工具类 (3)测试案例代码 (4)运行效果 Word文件有两种后缀格式,分别是:doc和docx,

    2024年02月13日
    浏览(45)
  • 【前端下载文件流详解】前端实现多种类型文件(word,excel,pdf,rar,zip等)的下载,接口返回文件流形式(附源码)

    【 写在前面 】其实之前我也写了有关java实现文件的下载,但是当时是局限于excel文档,针对其他类型的并没有介绍,这次刚好有个客户现场反馈回来的,说我们系统确实能下载报告,但是甲方领导要看所有的报告,这不我每天得一个一个的点击下载,然后再打包给他们领导

    2023年04月24日
    浏览(42)
  • Java使用ftl模板文件生成Word,以及Word转换图片或Pdf工具类

    一、写在前面 最近在项目中使用打印功能,发现这个功能我已经写过多次了,下面这个文章的发步日期在2020年,不得不感慨时间之快啊。 https://blog.csdn.net/weixin_43238452/article/details/109636200?spm=1001.2014.3001.5501 下面介绍一下应用场景:这次项目依旧是springboot项目,使用ftl模版生

    2024年02月15日
    浏览(42)
  • #vue3 实现前端下载excel文件模板功能

    一、需求: 前端无需通过后端接口,即可实现模板下载功能。 通过构造一个 JSON 对象,使用前端常用的 第三方库 xlsx ,可以直接将该 JSON 对象转换成 Excel 文件,让用户下载模板 二、效果: 三、源码如下:

    2024年01月19日
    浏览(45)
  • 后端:使用easyExcel实现解析Excel文件读取数据。前端:Excel模板下载、前端上传文件

            本篇是EasyExcel快速入门知识,讲解如何读取Excel文件,对Excel中错误信息如空字符、必填项为空、表格格式校验做到处理 ,并给出了实际项目中示例代码;为什么要使用easyexcel;原因是相比于poi,easyexcel更加轻量级,读取写入API方便,并且在工作中占用内存较小;

    2024年02月05日
    浏览(53)
  • vue-cli4前端实现下载本地Excel模板,以及下载静态文件的坑

    a标签的下载功能: 1:bobl ----二进制流文件 Blob对象标识一个不可变、原始数据的类文件对象。Blob表示的不一定是JavaScript原生格式的数据 2:responseType responseType它表示服务器响应的数据类型,由于后台返回来的是二进制数据,所以要把它设为‘blob’ 通过设置responseType为blo

    2024年02月02日
    浏览(34)
  • Java下载excel模板文件

    最近做了一个导入Excel的功能,需求: 先提供一个下载Excel模板的功能。 用户下载好模板后,可以在模板文件当中填写要上传的内容,填写完过后再进行导入Excel,然后将用户填写的数据保存到数据库当中。 1.将模板放到resources目录下,尽量创建一个专门的文件夹来存放模板

    2024年02月15日
    浏览(35)
  • 前端用 js-file-download组件下载后端返回的pdf,word,excel文件

    后端返回的pdf,word,excel的文件流导出需要让浏览器下载文件 1、安装js-file-download组件 2、在对应的页面引用 3、在接口返回结果后直接调用即可

    2024年02月08日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包