|
|
@ -1612,6 +1612,13 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) { |
|
|
|
else if(str <= r && edr >= r + rs - 1 && edc < c){ |
|
|
|
merge_new[r + "_" + (c - clen)] = { "r": r, "c": c - clen, "rs": rs, "cs": cs }; |
|
|
|
} |
|
|
|
else{ |
|
|
|
for(let r_i = r; r_i <= r + rs - 1; r_i++){ |
|
|
|
for(let c_i = c; c_i <= c + cs - 1; c_i++){ |
|
|
|
delete d[r_i][c_i].mc; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if(type == "moveUp"){ |
|
|
|
if(stc > c + cs - 1 || edc < c || str > r + rs - 1){ |
|
|
@ -1620,6 +1627,13 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) { |
|
|
|
else if(stc <= c && edc >= c + cs - 1 && edr < r){ |
|
|
|
merge_new[(r - rlen) + "_" + c] = { "r": r - rlen, "c": c, "rs": rs, "cs": cs }; |
|
|
|
} |
|
|
|
else{ |
|
|
|
for(let r_i = r; r_i <= r + rs - 1; r_i++){ |
|
|
|
for(let c_i = c; c_i <= c + cs - 1; c_i++){ |
|
|
|
delete d[r_i][c_i].mc; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
cfg["merge"] = merge_new; |
|
|
@ -1905,19 +1919,9 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) { |
|
|
|
CFr2 = cf_range[j].row[1], |
|
|
|
CFc1 = cf_range[j].column[0], |
|
|
|
CFc2 = cf_range[j].column[1]; |
|
|
|
|
|
|
|
if(!(str > CFr2 || edr < CFr1) || !(stc > CFc2 || edc < CFc1)){ |
|
|
|
let range = conditionformat.CFSplitRange( |
|
|
|
cf_range[j], |
|
|
|
{ "row": [str, edr], "column": [stc, edc] }, |
|
|
|
{ "row": [str, edr], "column": [stc, edc] }, |
|
|
|
"restPart" |
|
|
|
); |
|
|
|
|
|
|
|
cf_new_range.concat(range); |
|
|
|
} |
|
|
|
else{ |
|
|
|
cf_new_range.push(cf_range[j]); |
|
|
|
|
|
|
|
if(!(str <= CFr1 && edr >= CFr2 && stc <= CFc1 && edc >= CFc2)){ |
|
|
|
cf_new_range = getMoveRange(type, str, edr, stc, edc, CFr1, CFr2, CFc1, CFc2, rlen, clen); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -1978,18 +1982,8 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) { |
|
|
|
bd_c1 = borderRange[j].column[0], |
|
|
|
bd_c2 = borderRange[j].column[1]; |
|
|
|
|
|
|
|
if(!(str > bd_r2 || edr < bd_r1) || !(stc > bd_c2 || edc < bd_c1)){ |
|
|
|
let range = conditionformat.CFSplitRange( |
|
|
|
borderRange[j], |
|
|
|
{ "row": [str, edr], "column": [stc, edc] }, |
|
|
|
{ "row": [str, edr], "column": [stc, edc] }, |
|
|
|
"restPart" |
|
|
|
); |
|
|
|
|
|
|
|
emptyRange.concat(range); |
|
|
|
} |
|
|
|
else{ |
|
|
|
emptyRange.push(borderRange[j]); |
|
|
|
if(!(str <= bd_r1 && edr >= bd_r2 && stc <= bd_c1 && edc >= bd_c2)){ |
|
|
|
emptyRange = getMoveRange(type, str, edr, stc, edc, bd_r1, bd_r2, bd_c1, bd_c2, rlen, clen); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -2095,6 +2089,315 @@ function luckysheetDeleteCell(type, str, edr, stc, edc, order) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
function getMoveRange(type, str, edr, stc, edc, r1, r2, c1, c2, rlen, clen) { |
|
|
|
let newRange = []; |
|
|
|
|
|
|
|
if(type == "moveLeft"){ |
|
|
|
if(str > r2 || edr < r1 || stc > c2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2], |
|
|
|
"column": [c1, c2] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(edc < c1){ |
|
|
|
if(str <= r1 && edr >= r2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2], |
|
|
|
"column": [c1 - clen, c2 - clen] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(str > r1 && edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
{ "row": [str, edr], "column": [c1 - clen, c2 - clen] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(str > r1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [str, r2], "column": [c1 - clen, c2 - clen] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, edr], "column": [c1 - clen, c2 - clen] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(edc >= c1){ |
|
|
|
if(stc <= c1 && edc >= c2){ |
|
|
|
if(str > r1 && edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(str > r1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(stc > c1 && edc < c2){ |
|
|
|
if(str <= r1 && edr >= r2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2], |
|
|
|
"column": [c1, c2 - clen] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(str > r1 && edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
{ "row": [str, edr], "column": [c1, c2 - clen] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(str > r1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [str, r2], "column": [c1, c2 - clen] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, edr], "column": [c1, c2 - clen] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(stc > c1){ |
|
|
|
if(str <= r1 && edr >= r2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2], |
|
|
|
"column": [c1, stc - 1] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(str > r1 && edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
{ "row": [str, edr], "column": [c1, stc - 1] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(str > r1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [str, r2], "column": [c1, stc - 1] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, edr], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(edc < c2){ |
|
|
|
if(str <= r1 && edr >= r2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2], |
|
|
|
"column": [c1 - clen, c2 - clen] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(str > r1 && edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
{ "row": [str, edr], "column": [c1 - clen, c2 - clen] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(str > r1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, c2] }, |
|
|
|
{ "row": [str, r2], "column": [c1 - clen, c2 - clen] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edr < r2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, edr], "column": [c1 - clen, c2 - clen] }, |
|
|
|
{ "row": [edr + 1, r2], "column": [c1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if(type == "moveUp"){ |
|
|
|
if(stc > c2 || edc < c1 || str > r2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2], |
|
|
|
"column": [c1, c2] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(edr < r1){ |
|
|
|
if(stc <= c1 && edc >= c2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1 - rlen, r2 - rlen], |
|
|
|
"column": [c1, c2] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(stc > c1 && edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
{ "row": [r1 - rlen, r2 - rlen], "column": [stc, edc] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(stc > c1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1 - rlen, r2 - rlen], "column": [stc, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1 - rlen, r2 - rlen], "column": [c1, edc] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(edr >= r1){ |
|
|
|
if(str <= r1 && edr >= r2){ |
|
|
|
if(stc > c1 && edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(stc > c1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(str > r1 && edr < r2){ |
|
|
|
if(stc <= c1 && edc >= c2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, r2 - rlen], |
|
|
|
"column": [c1, c2] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(stc > c1 && edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
{ "row": [r1, r2 - rlen], "column": [stc, edc] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(stc > c1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, r2 - rlen], "column": [stc, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2 - rlen], "column": [c1, edc] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(str > r1){ |
|
|
|
if(stc <= c1 && edc >= c2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1, str - 1], |
|
|
|
"column": [c1, c2] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(stc > c1 && edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
{ "row": [r1, str - 1], "column": [stc, edc] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(stc > c1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, str - 1], "column": [stc, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, str - 1], "column": [c1, edc] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
else if(edr < r2){ |
|
|
|
if(stc <= c1 && edc >= c2){ |
|
|
|
newRange.push({ |
|
|
|
"row": [r1 - rlen, r2 - rlen], |
|
|
|
"column": [c1, c2] |
|
|
|
}); |
|
|
|
} |
|
|
|
else if(stc > c1 && edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
{ "row": [r1 - rlen, r2 - rlen], "column": [stc, edc] } |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(stc > c1){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1, r2], "column": [c1, stc - 1] }, |
|
|
|
{ "row": [r1 - rlen, r2 - rlen], "column": [stc, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
else if(edc < c2){ |
|
|
|
let range= [ |
|
|
|
{ "row": [r1 - rlen, r2 - rlen], "column": [c1, edc] }, |
|
|
|
{ "row": [r1, r2], "column": [edc + 1, c2] }, |
|
|
|
]; |
|
|
|
newRange = newRange.concat(range); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return newRange; |
|
|
|
} |
|
|
|
|
|
|
|
export { |
|
|
|
luckysheetextendtable, |
|
|
|
luckysheetextendData, |
|
|
|