dstCell.setCellStyle(prepareCellStyle(srcCell.getCellStyle(), dstCell, pasteType));
//handle merge/unmerge cases
final int dstrow = dstCell.getRowIndex();
final int dstcol = dstCell.getColumnIndex();
final Worksheet dstSheet = (Worksheet)dstCell.getSheet();
final CellRangeAddress dstaddr = ((SheetCtrl)dstSheet).getMerged(dstrow, dstcol);
if (dstaddr != null) { //shall un-merge the destination merge range
final int dstrow2 = dstaddr.getLastRow();
final int dstcol2 = dstaddr.getLastColumn();
final ChangeInfo changeInfo0 = unMerge(dstSheet, dstrow, dstcol, dstrow2, dstcol2);
assignChangeInfo(toEval, affected, mergeChanges, changeInfo0);
}
final int srcrow = srcCell.getRowIndex();
final int srccol = srcCell.getColumnIndex();
final CellRangeAddress srcaddr = ((SheetCtrl)srcCell.getSheet()).getMerged(srcrow, srccol);
if (srcaddr != null) { //src is a merge range, shall merge dest cell
final int srcrow2 = srcaddr.getLastRow();
final int srccol2 = srcaddr.getLastColumn();
final int tRow = dstrow;
final int lCol = dstcol;
final int bRow = tRow + srcrow2 - srcrow;
final int rCol = lCol + srccol2 - srccol;
final ChangeInfo changeInfo0 = merge(dstSheet, tRow, lCol, bRow, rCol, false);