java导出word

简介: java导出word

1.使用easyWord

2.模版 .doc文件
image.png
3.maven依赖


com.sushengren
easyword
1.1.3

4.
————————————————
package com.test.domain.word;

import com.sushengren.easyword.annotation.WordProperty;
import jdk.nashorn.internal.objects.annotations.Getter;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/*

  • 导出word
    */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public class Wxdj {

    @WordProperty("wxdjcode")
    private String wxdjcode;

    @WordProperty("deptName")
    private String deptName;

    @WordProperty("policeName")
    private String policeName;

    @WordProperty("ctAjmc")
    private String ctAjmc;

    @WordProperty("policePhone")
    private String policePhone;

    @WordProperty("createdate")
    private String createdate;

}

@ExcelIgnore 隐藏不展示实体类的字段
5.给模版赋值

/*8

 * 下载通知书 模版信息
 * @param ctId
 */
@Override
public void downloadNotice(String ctId, HttpServletRequest request, HttpServletResponse response) throws IOException {
    String path = this.getClass().getResource("/").getPath();
    String rootPath = path.substring(1, path.length());
    //TODO 后续将模版文件写在  sys_config 表中
    String filePath = rootPath.replace("ruoyi-admin/target/classes/", "business/src/main/resources/stencil/wxdj.doc");
    File file = new File(filePath);

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    TbNbgzWxdj nbgzWxdj = tbNbgzWxdjMapper.selectTbNbgzWxdjByCtId(ctId);
    //外协单位-组织信息
    TbNbgzWxdjdata dept = new TbNbgzWxdjdata();
    dept.setCtIdP(ctId);
    dept.setCtFunNo(FunNoConstants.NBGZ_WXDJWXDW_DEPT);
    dept.setCtFunNop(FunNoConstants.NBGZ_WXDJ);
    List<TbNbgzWxdjdata> deptList = tbNbgzWxdjwdataMapper.selectTbNbgzWxdjwdataList(dept);
    List<String> deptNames = deptList.stream().map(TbNbgzWxdjdata::getCtDeptName).collect(Collectors.toList());
    String deptName = String.join(",", deptNames);


    //外协单位人员名称信息
    List<TbNbgzWxdjdata> newPoliceList = new ArrayList<>();
    for (int i = 0; i < deptList.size(); i++) {
        TbNbgzWxdjdata tbNbgzWxdjdata = deptList.get(i);
        //外协单位-人员信息
        TbNbgzWxdjdata police = new TbNbgzWxdjdata();
        police.setCtFunNop(FunNoConstants.NBGZ_WXDJ);
        police.setCtFunNo(FunNoConstants.NBGZ_WXDJWXDW_POLICE);
        police.setCtIdP(deptList.get(i).getCtId());
        List<TbNbgzWxdjdata> policeList = tbNbgzWxdjwdataMapper.selectTbNbgzWxdjwdataList(police);
        if (policeList.size() > 0) {
            tbNbgzWxdjdata.setWxdwPoliceList(policeList);
        }
        newPoliceList.add(tbNbgzWxdjdata);
    }
    nbgzWxdj.setWxdwList(newPoliceList);

    List<TbNbgzWxdjdata> wxdwPoliceList = newPoliceList.get(0).getWxdwPoliceList();
    List<String> policeLists = wxdwPoliceList.stream().map(TbNbgzWxdjdata::getCtQqmjName).collect(Collectors.toList());

    String policeName = String.join(",", policeLists);
    //外协单位人员电话信息
    List<String> policePhoneLists = newPoliceList.stream().map(TbNbgzWxdjdata::getCtQqmjPhone).collect(Collectors.toList());
    String policePhone = String.join(",", policePhoneLists);


    for (int i = 0; i < deptList.size(); i++) {
        TbNbgzWxdjdata tbNbgzWxdjdata = deptList.get(i);
        //外协单位-人员信息
        TbNbgzWxdjdata police = new TbNbgzWxdjdata();
        police.setCtFunNop(FunNoConstants.NBGZ_WXDJ);
        police.setCtFunNo(FunNoConstants.NBGZ_WXDJWXDW_POLICE);
        police.setCtIdP(deptList.get(i).getCtId());
        List<TbNbgzWxdjdata> policeList = tbNbgzWxdjwdataMapper.selectTbNbgzWxdjwdataList(police);
        if (policeList.size() > 0) {
            tbNbgzWxdjdata.setWxdwPoliceList(policeList);
            newPoliceList.addAll(policeList);
        }
    }

    Wxdj wxdj = Wxdj.builder()
            .wxdjcode(ctId)
            .deptName(deptName)
            .policeName(policeName)
            .ctAjmc(nbgzWxdj.getCtAjmc())
            .policePhone(policePhone)
            .createdate(df.format(nbgzWxdj.getDtCreateDate()))
            .build();

    EasyWord.of(file).doWrite(wxdj).toOutputStream(response.getOutputStream());

}
相关文章
|
4月前
|
Java
java生成word(使用Poi-tl)
java生成word(使用Poi-tl)
231 0
|
5月前
|
前端开发 Java
基于Java爬取微博数据(二) 正文长文本+导出数据Excel
【5月更文挑战第12天】基于Java爬取微博数据,正文长文本+导出数据Excel
|
17天前
|
存储 Java
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
java的Excel导出,数组与业务字典匹配并去掉最后一个逗号
35 2
|
2月前
|
XML Java 数据格式
基于Java+freemarker实现动态赋值以及生成Word文档
使用Java和Freemarker技术实现动态数据填充到Word文档模板并生成新的Word文档。
117 0
基于Java+freemarker实现动态赋值以及生成Word文档
|
1月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
299 0
|
3月前
|
JavaScript Java
Java 将Markdown文件转换为Word和PDF文档
【7月更文挑战第5天】Java中使用`Spire.Doc for Java`库可方便地将Markdown转换为Word或PDF。基本步骤包括导入模块,创建`Document`对象,加载Markdown文件,然后保存为目标格式(`.docx`或`.pdf`)。若遇到`Invalid UTF-8 stream`错误,需确保Markdown文件是UTF-8无BOM编码。页面设置可通过`PageSetup`类调整。注意,实际应用会依据具体需求和环境有所调整。
155 6
|
2月前
|
Java 网络安全 开发工具
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
新手入门Java。如何下载Eclipse、写出最基本的“Hello word”以及如何连接github并且上传项目。
42 0
|
3月前
|
Java 数据安全/隐私保护
Java无模版导出Excel 0基础教程
经常写数据导出到EXCEL,没有模板的情况下使用POI技术。以此作为记录,以后方便使用。 2 工具类 样式工具: 处理工具Java接口 水印工具 导出Excel工具类 3 测试代码 与实际复杂业务不同 在此我们只做模拟 Controller Service 4 导出测试 使用Postman进行接口测试,没接触过Postman的小伙伴可以看我这篇博客Postman导出excel文件保存为文件可以看到导出很成功,包括水印 sheet页名称自适应宽度。还有一些高亮……等功能可以直接搜索使用
Java无模版导出Excel 0基础教程
|
4月前
|
存储 Java Maven
如何在Java中导入和导出CSV文件
如何在Java中导入和导出CSV文件
187 2
|
5月前
|
Java Apache
Java将word、excel文件转成pdf文件
【5月更文挑战第26天】Java将word、excel文件转成pdf文件
1657 1
下一篇
无影云桌面