poi tl 判断空值_java一键生成word操作,比poi简单。poi-tl

最近用到java生成word,一想到要用poi各种逻辑各种写超级麻烦,去百度到某个插件poi-tl(操作word)

着实超级简单,有需要的朋友看过来了

package com.bd.modules.pmp.util;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.HashMap;

import java.util.Map;

import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import com.bd.common.config.Global;

import com.deepoove.poi.XWPFTemplate;

/**

* DOC生成工具类

* @author lzy

* @date Jul 24, 2019 9:39:28 AM

* @packageName com.bd.modules.pmp.util

* @jdk_version 1.8.121

*/

public class DocUtil {

public static Logger logger = LoggerFactory.getLogger(DocUtil.class);

//存储模板路径common/css/yygzs.css

// public static final String template1="d:/testWord.docx";

/*

* win的路径

*/

public static final String template1=Global.getConfig("winUploadWord")+"/01_供应链ABS项目_付款确认书(共同债务人)20180426.docx";

public static final String template2=Global.getConfig("winUploadWord")+"/02_应收账款转让合同(适用于公开型无追索应收账款转让业务)20180426.docx";

public static final String template3=Global.getConfig("winUploadWord")+"/03供应链ABS项目_买方确认函(债务人确认债务)20180426.docx";

public static final String template4=Global.getConfig("winUploadWord")+"/04_供应链ABS项目_应收账款转让通知书(适用于供应商通知债务人)20180426.docx";

public static final String template5=Global.getConfig("winUploadWord")+"/05_供应链ABS项目_应收账款转让通知书(适用于保理商通知债务人)20180426.docx";

public static final String template6=Global.getConfig("winUploadWord")+"/06_应收账款转让登记协议.docx";

/*

* linux

*/

// public static final String template1=Global.getConfig("linuxUploadWord")+"/01_供应链ABS项目_付款确认书(共同债务人)20180426.docx";

// public static final String template2=Global.getConfig("linuxUploadWord")+"/02_应收账款转让合同(适用于公开型无追索应收账款转让业务)20180426.docx";

// public static final String template3=Global.getConfig("linuxUploadWord")+"/03供应链ABS项目_买方确认函(债务人确认债务)20180426.doc";

// public static final String template4=Global.getConfig("linuxUploadWord")+"/04_供应链ABS项目_应收账款转让通知书(适用于供应商通知债务人)20180426.docx";

// public static final String template5=Global.getConfig("linuxUploadWord")+"/05_供应链ABS项目_应收账款转让通知书(适用于保理商通知债务人)20180426.docx";

// public static final String template6=Global.getConfig("linuxUploadWord")+"/06_应收账款转让登记协议.docx";

/**

* 生成word文档

* @author lzy

* @date Jul 24, 2019 9:48:18 AM

* @packageName com.bd.modules.pmp.util

* @jdk_version 1.8.121

* @param docName 文件名:xx合同书

* @param templatePath templatePath 模板路径 例如:"d:/test.docx"

* @param map 写入的模板信息数据

* @param response 下载请求

* * 案例:

* XWPFTemplate template = XWPFTemplate.compile("d:/test.docx").render(new HashMap(){{

put("title", "我爱中国");

}});

*/

public static void exmDoc(String docName,String templatePath,Map map,HttpServletResponse response) {

//生成文件名 例如:d:/out_template.docx

String fileName = Global.getConfig("winUploadWord")+"/"+docName+".docx"; //win下面的路径

//String fileName = Global.getConfig("linuxUploadDownLoad")+"/"+docName+DateUtils.getDate("yyyyMMdd")+".docx"; //linux

//取出word模板

XWPFTemplate template = XWPFTemplate.compile(templatePath).render(map);

try {

//输出生成好的文件

FileOutputStream out = new FileOutputStream(fileName);

template.write(out);

logger.debug("生成成功");

//如果需要下载执行下一条代码

logger.debug("进入下载start");

// DocUtil.download(fileName, response);

logger.debug("进入下载end");

System.out.println();

out.flush();

out.close();

template.close();

logger.debug("关闭导出流成功");

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

logger.error("出现异常:"+e);

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

logger.error("出现异常:"+e);

e.printStackTrace();

}

}

/**

* 测试

* @author lzy

* @date Jul 24, 2019 9:40:48 AM

* @packageName com.bd.modules.pmp.util

* @jdk_version 1.8.121

* @param args

*/

public static void main(String[] args) {

Map datas = new HashMap();

datas.put("temp1","测试word模板1");

HttpServletResponse response=null;

exmDoc("测试生成word", template1, datas, response);

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值