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

阅读更多
用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); 
}
}

代码很简单。

你可能感兴趣的:(POI excel 触发 公式 计算 删除空白行)