批量导出word,并导出一个zip文件

系统导出功能,多条数据分别导出word,多个word打包到一个zip进行导出,直接拷贝过去可用,如果缺包自行查找。

参考: Java使用word模板导出word_java根据模板导出word-优快云博客.

    @Action(value = "exportToWordZip")
    public String exportToWordZip() throws Exception {
        HttpServletRequest request = ServletActionContext.getRequest();
        WordUtil xwpfTUtil = null;
        FileOutputStream os = null;
        InputStream is = null;
        List<String> files = new ArrayList<>();
        for (int i = 0; i < 2; i++) {
            //导出的数据处理
            Map<String, Object> params = new HashMap<>();
            params.put("${Name}", "Fisher3652");
            params.put("${Sex}", "男");
            params.put("${Desc}", "18岁\tJAVA开发\r熟悉JVM基本原理");
            params.put("${@Pic}", "C:\\Users\\admin\\Desktop\\资源\\32.png");

            //获取模版
            is = FileUtil.class.getClassLoader().getResourceAsStream("static/letterWordDemo.docx");
            xwpfTUtil = new WordUtil();
            CustomXWPFDocument doc;
            doc = new CustomXWPFDocument(is);
            //模版替换成真实数据
            xwpfTUtil.replaceInPara(doc, params);
            xwpfTUtil.replaceInTable(doc, params);
            //生成word到临时文件
            String realPath = request.getSession().getServletContext().getRealPath("/");
            String parentPath = new File(realPath).getParent() + "/exportToWordZipTemp" ;
            File dir = new File(parentPath);
            if (!dir.exists()) {
                dir.mkdirs();
            }
            String fileName = parentPath + "/" + i + ".docx";
            System.out.println(fileName);
            os = new FileOutputStream(fileName);
            files.add(fileName);
            doc.write(os);
            System.out.println("word成功生成");
        }
        xwpfTUtil.close(os);
        xwpfTUtil.close(is);
        os.flush();
        os.close();
        writeZip(files, "文件汇总");
        return null;
    }
package com.dazhi.itp.util.exportWord;

import org.apache.poi.openxml4j.opc.OPCPackage;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值