POI excel 触发 公式 计算 删除空白行

40 篇文章 0 订阅
用POI api修改excel 表格数据后, 想触发计算公式重新计算


简单的方法


对设置了公式的单元格做如下操作,相当于刷新下公式会触发重新计算


cell.setCellFormula(cell.getCellFormula());


删除空白行

HSSFSheet类有两个和删除行有关的方法,第一个是removeRow(Row row),但这个方法只可以把该行清空,并不能完全删除。

怎么办?我处理的excel文件可是几百行,靠自己打开excel重新删除肯定是不靠谱的。

又去网上查了下,看到了shiftRows(int startRow, int endRow, int n) 这个方法。这个方法可以把startRow至endRow之间的所有行,按照n向上或移动。n如果为正数,则整体区域向下移动,n如果为负数,则整体区域向上移动,我们如果要删除空行,就可以利用shiftRows方法,从sheet表的最后一行开始向上逆序移动非空行。代码如下:

int i = sheet.getLastRowNum();
HSSFRow tempRow;
while(i > 0){
i--;
tempRow = sheet.getRow(i);
if(tempRow == null){
sheet.shiftRows(i+1, sheet.getLastRowNum(), -1);
}
}

代码很简单。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值