apache poi 修改docx表格_word 模板内容的替换和生成word 表格(使用poi)

1. maven 相关依赖 和模板

org.apache.poi

poi-ooxml

3.15-beta2

org.apache.poi

ooxml-schemas

1.1

2.  工具类中的方法

// 给生成的表格设置样式

public static void setCellWitchAndAlign(XWPFTableCell cell,String width,STVerticalJc.Enum typeEnum,STJc.Enum align){

CTTc cttc = cell.getCTTc();

CTTcPr ctPr = cttc.addNewTcPr();

ctPr.addNewVAlign().setVal(typeEnum);

cttc.getPList().get(0).addNewPPr().addNewJc().setVal(align);

CTTblWidth ctTblWidth = (ctPr != null && ctPr.isSetTcW() && ctPr.getTcW()!=null &&ctPr.getTcW().getW()!=null) ? ctPr.getTcW(): ctPr.addNewTcW();

if(StringUtils.isNotBlank(width)){

ctTblWidth.setW(new BigInteger(width));

ctTblWidth.setType(STTblWidth.DXA);

}

}

/**

* 生成word文档下载

*/

public static void DownloadWord(HttpServletResponse response,List list, Map map,String file){

XWPFDocument document = null;

ServletOutputStream servletOS = null;

ByteArrayOutputStream ostream = null;

//添加表格

try {

servletOS = response.getOutputStream();

ostream = new ByteArrayOutputStream();

document = new XWPFDocument(POIXMLDocument.openPackage(file));// 生成word文档并读取模板

/* ***********************比赛报名表基本信息******************************begin */

Iterator it = document.getTablesIterator();

//表格内容替换添加

while(it.hasNext()){

XWPFTable table = it.next();

int rcount = table.getNumberOfRows();

for(int i =0 ;i < rcount;i++){

XWPFTableRow row = table.getRow(i);

List cells = row.getTableCells();

for (XWPFTableCell cell : cells){

for(Entry e : map.entrySet()){

if (cell.getText().equals(e.getKey())){

//删除原来内容

cell.removeParagraph(0);

//写入新内容

cell.setText((String) e.getValue());

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值