Browse Source

fixed: #573 复制多行文本(inlineStr)类型的单元格无法复制和粘贴

master
susiyang 5 years ago
parent
commit
7f4e14d93c
  1. 18
      src/controllers/handler.js
  2. 11
      src/controllers/selection.js

18
src/controllers/handler.js

@ -5329,7 +5329,7 @@ export default function luckysheetHandler() {
for(let c = copy_c1; c <= copy_c2; c++){
let cell = d[r][c];
let isInlineStr = false
if(cell != null && cell.mc != null && cell.mc.rs == null){
continue;
}
@ -5347,10 +5347,23 @@ export default function luckysheetHandler() {
v = "";
}
if(v == null && d[r][c] && d[r][c].ct && d[r][c].ct.t == 'inlineStr') {
v = d[r][c].ct.s.map(val=>val.v).join('');
isInlineStr = true;
}
if(v == null){
v = "";
}
if(isInlineStr){
const cpData = $(cpDataArr[r - copy_r1][c - copy_c1]).text().replace(/\s|\n/g,' ')
const storeValue = v.replace(/\n/g,'').replace(/\s/g,' ')
if(cpData != storeValue){
isEqual = false;
break;
}
}
else{
if(cpDataArr[r - copy_r1][c - copy_c1] != v){
isEqual = false;
break;
@ -5358,6 +5371,7 @@ export default function luckysheetHandler() {
}
}
}
}
const locale_fontjson = locale().fontjson;

11
src/controllers/selection.js

@ -438,6 +438,17 @@ const selection = {
if(c_value == null){
c_value = getcellvalue(r, c, d);
}
if(c_value == null && d[r][c] && d[r][c].ct && d[r][c].ct.t == 'inlineStr') {
c_value = d[r][c].ct.s.map(val=>{
const font = $('<font></font>')
val.fs && font.css('font-size',val.fs)
val.bl && font.css('font-weight',val.border)
val.it && font.css('font-style',val.italic)
val.cl==1 && font.css('text-decoration','underline')
font.text(val.v)
return font[0].outerHTML
}).join('');
}
if(c_value == null){
c_value = "";

Loading…
Cancel
Save