POI整的让我头大

行尸走肉般改了一下午的poi解析word的table
增加行 赋值 增加行 赋值 增加行 赋值 增加行 赋值 增加行 赋值。。。。。。。。。
怎么都不行
每次都挤到最后一行
死磕了半天 不敢怀疑 可到底
还是poi的坑

addNewRowBetween 竟然没实现,没实现,你放这里是干嘛!!!!!!!!!!!!!!!!!!
在这里插入图片描述

addRow是插入了,但是我赋值的时候,全部挤到最后一行,呵呵,浅拷贝,永远都在操作同一对象,死磕的我都要炸了!!!!!!!!!
在这里插入图片描述

insertNewTableRow吧,只是追加一样,连样式都没有,你好意思加这个方法
在这里插入图片描述
所以只能拷贝某一行的属性,然后赋值了
public static void copy(XWPFTable table,XWPFTableRow sourceRow,int rowIndex){
//在表格指定位置新增一行
XWPFTableRow targetRow = table.insertNewTableRow(rowIndex);
//复制行属性
targetRow.getCtRow().setTrPr(sourceRow.getCtRow().getTrPr());
List cellList = sourceRow.getTableCells();
if (null == cellList) {
return;
}
//复制列及其属性和内容
XWPFTableCell targetCell = null;
for (XWPFTableCell sourceCell : cellList) {
targetCell = targetRow.addNewTableCell();
//列属性
targetCell.getCTTc().setTcPr(sourceCell.getCTTc().getTcPr());
//段落属性
if(sourceCell.getParagraphs()!=null&&sourceCell.getParagraphs().size()>0){
targetCell.getParagraphs().get(0).getCTP().setPPr(sourceCell.getParagraphs().get(0).getCTP().getPPr());
if(sourceCell.getParagraphs().get(0).getRuns()!=null&&sourceCell.getParagraphs().get(0).getRuns().size()>0){
XWPFRun cellR = targetCell.getParagraphs().get(0).createRun();
cellR.setText(“2”);
cellR.setBold(sourceCell.getParagraphs().get(0).getRuns().get(0).isBold());
}else{
targetCell.setText(“1”);
}
}else{
targetCell.setText(sourceCell.getText());
}
}
}

参考这个:https://blog.csdn.net/lexuansweet/article/details/81288262
实现OK!!!

这个很详细:https://www.cnblogs.com/dreammyle/p/4606867.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值