java导出word

1.使用easyWord

2.模版   .doc文件

3.maven依赖

<dependency>
    <groupId>com.sushengren</groupId>
    <artifactId>easyword</artifactId>
    <version>1.1.3</version>
</dependency>

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());

    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王大锤4391

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值