Java数据,导出word文档

2 篇文章 0 订阅
1 篇文章 0 订阅

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • Java通过模板把数据导入到word文档中
  • 一、模板是什么?
  • 二、使用步骤
    • 1.条件模板到文件夹
    • 2.工具类代码
    package com.cz.service;
    
    import cn.afterturn.easypoi.cache.manager.POICacheManager;
    import cn.afterturn.easypoi.word.WordExportUtil;
    import cn.afterturn.easypoi.word.entity.MyXWPFDocument;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.springframework.stereotype.Service;
    import org.springframework.util.ResourceUtils;
    
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URLEncoder;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.UUID;
    
    /**
     * @ClassName WordService
     * @Author lxz
     * @Date 2022/10/31
     * @Version 1.0
     **/
    @Service
    public class WordService {
    
        public void word(HttpServletResponse response,String path1) throws Exception {
            // 读取static文件下的模板
            String path = this.getClass().getClassLoader().getResource("static/PromptReport.docx").getPath();
            // 参数写读取到的路径
            File templateFile = new File(path);
            // 替换文件中相同的数据
            HashMap map = new HashMap();
            map.put("gm", "1111");
            map.put("lwm", "3333");
            //2.映射模板,替换数据
            XWPFDocument word = WordExportUtil.exportWord07(templateFile.getPath(), map);
            // 设置返回参数的字符集
            response.reset();
            response.setHeader("Access-Control-Allow-Origin","*");
            response.setContentType("application/msexcel");
            response.setContentType("text/html; charset=UTF-8");
            // 设置返回参数的文件名称和类型
            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode("瞬量信息.docx", "utf-8"));
            // 生成输出流
            ServletOutputStream out = response.getOutputStream();
            // 写回文件
            word.write(out);
            // 关流(可以不写,因为流是response传过来的,不是咱们自己new的)
            out.close();
        }
    }
    
  • 3.controller代码
  • package com.cz.controller;
    
    import cn.afterturn.easypoi.word.WordExportUtil;
    import com.cz.service.WordService;
    import org.apache.poi.xwpf.usermodel.XWPFDocument;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.ServletOutputStream;
    import javax.servlet.http.HttpServletResponse;
    import java.io.File;
    import java.net.URLEncoder;
    import java.util.HashMap;
    
    
    @RestController
    @RequestMapping("word")
    public class WordController {
    
        @Autowired
        private WordService wordService;
    
        @GetMapping("download")
        public  void word(HttpServletResponse response,String path1) throws Exception {
         wordService.word(response,path1);
        }
    
    
    }
    

  • 总结
  • word模板类型必须是docx类型

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值