/** * 获取合并单元格的值 * @param sheet * @param row * @param column * @return */ public string getmergedregionvalue(sheet sheet ,int row , int column){ int sheetmergecount = sheet.getnummergedregions(); for(int i = 0 ; i < sheetmergecount ; i++){ cellrangeaddress ca = sheet.getmergedregion(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){ row frow = sheet.getrow(firstrow); cell fcell = frow.getcell(firstcolumn); return getcellvalue(fcell) ; } } } return null ; } /** * 判断指定的单元格是否是合并单元格 * @param sheet * @param row * @param column * @return */ public boolean ismergedregion(sheet sheet , int row , int column){ int sheetmergecount = sheet.getnummergedregions(); for(int i = 0 ; i < sheetmergecount ; i++ ){ cellrangeaddress ca = sheet.getmergedregion(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){ return true ; } } } return false ; } /** * 获取单元格的值 * @param cell * @return */ public string getcellvalue(cell cell){ if(cell == null) return ""; if(cell.getcelltype() == cell.cell_type_string){ return cell.getstringcellvalue(); }else if(cell.getcelltype() == cell.cell_type_boolean){ return string.valueof(cell.getbooleancellvalue()); }else if(cell.getcelltype() == cell.cell_type_formula){ return cell.getcellformula() ; }else if(cell.getcelltype() == cell.cell_type_numeric){ return string.valueof(cell.getnumericcellvalue()); } return ""; }