poi操作excel之删除模版的合并行
每篇一句励志:每个人都有潜在的能量,只是很容易被习惯所掩盖,被时间所迷离,被惰性所消磨。
如果在模版中有合并行,使用 sheet.shiftRows(开始行,结束行,移动行数); 删除行的话会报错。所以有了以下代码。得先删除原有的行合并才能做删除移动。
// 参数1:sheet、参数2:开始行、参数3:开始列
public static void removeMergedRegion(Sheet sheet, int row , int column)
{
int sheetMergeCount = sheet.getNumMergedRegions();//获取所有的单元格
int index = 0;//用于保存要移除的那个单元格序号
for (int i = 0; i < sheetMergeCount; i++) {
CellRangeAddress ca = sheet.getMergedRegion(i); //获取第i个单元格
int firstColumn = ca.getFirstColumn();
int lastColumn = ca.getLastColumn();
int firstRow = ca.getFirstRow();
int lastRow = ca.getLastRow();
if(row >= firstRow && row <= lastRow)
{
if(column >= firstColumn && column <= lastColumn)
{
index = i;
}
}
}
sheet.removeMergedRegion(index);//移除合并单元格
}