diff --git a/src/controllers/inlineString.js b/src/controllers/inlineString.js index 48013e570..e09452c92 100644 --- a/src/controllers/inlineString.js +++ b/src/controllers/inlineString.js @@ -350,7 +350,8 @@ export function convertSpanToShareString($dom){ let styleList = convertCssToStyleList(span.style.cssText); let curStyleListString = JSON.stringify(styleList); - let v = span.innerHTML; + // let v = span.innerHTML; + let v = span.innerText; v = v.replace(/\n/g, "\r\n"); if(curStyleListString==preStyleListString){ diff --git a/src/controllers/sheetBar.js b/src/controllers/sheetBar.js index df8aacb3d..b2434ace9 100644 --- a/src/controllers/sheetBar.js +++ b/src/controllers/sheetBar.js @@ -123,6 +123,11 @@ function showsheetconfigmenu() { } let luckysheetsheetrightclick = function ($t, $cur, e) { + //保存正在编辑的单元格内容 + if (parseInt($("#luckysheet-input-box").css("top")) > 0) { + formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]); + } + clearTimeout(jfdbclicklagTimeout); if ($cur.hasClass("luckysheet-sheets-item-name") && $cur.attr("contenteditable") == "true") { return; @@ -136,10 +141,6 @@ let luckysheetsheetrightclick = function ($t, $cur, e) { }, 1); } else { - //保存正在编辑的单元格内容 - if (parseInt($("#luckysheet-input-box").css("top")) > 0) { - formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]); - } $("#luckysheet-input-box").removeAttr("style"); $("#luckysheet-formula-functionrange .luckysheet-formula-functionrange-highlight").remove(); } @@ -410,6 +411,11 @@ export function initialSheetBar(){ }); $("#luckysheet-sheets-add").click(function (e) { + //保存正在编辑的单元格内容 + if (parseInt($("#luckysheet-input-box").css("top")) > 0) { + formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]); + } + sheetmanage.addNewSheet(e); sheetmanage.locationSheet(); $("#luckysheet-input-box").removeAttr("style"); @@ -458,6 +464,11 @@ export function initialSheetBar(){ let initialOpenSheet = true; $("#luckysheet-sheets-m").click(function (e) { + //保存正在编辑的单元格内容 + if (parseInt($("#luckysheet-input-box").css("top")) > 0) { + formula.updatecell(Store.luckysheetCellUpdate[0], Store.luckysheetCellUpdate[1]); + } + $("#luckysheet-sheet-list").html(""); let item = ""; diff --git a/src/global/api.js b/src/global/api.js index cd466e7b7..ef52d26d9 100644 --- a/src/global/api.js +++ b/src/global/api.js @@ -333,8 +333,20 @@ export function setCellFormat(row, column, attr, value, options = {}) { order = curSheetOrder, success } = { ...options }; - let targetSheetData = $.extend(true, [], Store.luckysheetfile[order].data); + + let file = Store.luckysheetfile[order]; + + if(file == null){ + return tooltip.info("The order parameter is invalid.", ""); + } + + let targetSheetData = $.extend(true, [], file.data); + if(targetSheetData.length == 0){ + targetSheetData = sheetmanage.buildGridData(file); + } + let cellData = targetSheetData[row][column] || {}; + let cfg = $.extend(true, {}, file.config); // 特殊格式 if (attr == 'ct' && (!value || !value.hasOwnProperty('fa') || !value.hasOwnProperty('t'))) { @@ -342,7 +354,6 @@ export function setCellFormat(row, column, attr, value, options = {}) { } if (attr == 'bd') { - let cfg = $.extend(true, {}, Store.config); if(cfg["borderInfo"] == null){ cfg["borderInfo"] = []; } @@ -360,7 +371,6 @@ export function setCellFormat(row, column, attr, value, options = {}) { } cfg["borderInfo"].push(borderInfo); - Store.config = cfg; } else { cellData[attr] = value; } @@ -368,7 +378,15 @@ export function setCellFormat(row, column, attr, value, options = {}) { targetSheetData[row][column] = cellData; // refresh - jfrefreshgrid(targetSheetData, [{ "row": [row, row], "column": [column, column] }]); + if(file.index == Store.currentSheetIndex){ + file.config = cfg; + Store.config = cfg; + jfrefreshgrid(targetSheetData, [{ "row": [row, row], "column": [column, column] }]); + } + else { + file.config = cfg; + file.data = targetSheetData; + } if (success && typeof success === 'function') { success(cellData);