diff --git a/src/controllers/conditionformat.js b/src/controllers/conditionformat.js index c54e1f006..e50207f00 100644 --- a/src/controllers/conditionformat.js +++ b/src/controllers/conditionformat.js @@ -1642,7 +1642,7 @@ const conditionformat = { $("body").append(replaceHtml(modelHTML, { "id": "luckysheet-administerRule-dialog", "addclass": "luckysheet-administerRule-dialog", - "title": conditionformat_Text.manageRules, + "title": conditionformat_Text.conditionformatManageRules, "content": content, "botton": ` `, diff --git a/src/global/draw.js b/src/global/draw.js index 8ab294d7c..6ebbc9b67 100644 --- a/src/global/draw.js +++ b/src/global/draw.js @@ -2302,1445 +2302,6 @@ function getCellValueSize(cell, value, canvas, cellWidth, cellHeight, space_widt } } -// function luckysheetDrawMain(scrollWidth, scrollHeight, drawWidth, drawHeight, offsetLeft, offsetTop, columnOffsetCell, rowOffsetCell, mycanvas, ctx, ctxdata) { -// if(ctxdata != null){ -// Store.flowdata = ctxdata; -// } - -// if(Store.flowdata == null){ -// return; -// } - -// if (scrollWidth == null) { -// scrollWidth = $("#luckysheet-cell-main").scrollLeft(); -// } -// if (scrollHeight == null) { -// scrollHeight = $("#luckysheet-cell-main").scrollTop(); -// } - -// if (drawWidth == null) { -// drawWidth = Store.luckysheetTableContentHW[0]; -// } -// if (drawHeight == null) { -// drawHeight = Store.luckysheetTableContentHW[1]; -// } - -// if (offsetLeft == null) { -// offsetLeft = Store.rowHeaderWidth; -// } -// if (offsetTop == null) { -// offsetTop = Store.columeHeaderHeight; -// } - -// if (columnOffsetCell == null) { -// columnOffsetCell = 0; -// } -// if (rowOffsetCell == null) { -// rowOffsetCell = 0; -// } - -// let luckysheetTableContent = null; -// if(ctx != null){ -// let luckysheetTableElement = document.createElement('canvas'); -// luckysheetTableElement.width = drawWidth; -// luckysheetTableElement.height = drawHeight; -// luckysheetTableContent = luckysheetTableElement.getContext("2d"); -// } -// else{ -// if(mycanvas == null){ -// luckysheetTableContent = $("#luckysheetTableContent").get(0).getContext("2d"); -// } -// else { -// if(getObjType(mycanvas) == "object"){ -// try{ -// luckysheetTableContent = mycanvas.get(0).getContext("2d"); -// } -// catch(err){ -// luckysheetTableContent = mycanvas; -// } -// } -// else{ -// luckysheetTableContent = $("#" + mycanvas).get(0).getContext("2d"); -// } -// } -// } - -// luckysheetTableContent.clearRect( -// 0, -// 0, -// Store.luckysheetTableContentHW[0] * Store.devicePixelRatio, -// Store.luckysheetTableContentHW[1] * Store.devicePixelRatio -// ); - -// //离屏canvas -// let offlinecanvas = null; -// if(ctx != null){ -// let offlineElement = document.createElement('canvas'); -// offlineElement.width = drawWidth; -// offlineElement.height = drawHeight; -// offlinecanvas = offlineElement.getContext("2d"); -// } -// else{ -// offlinecanvas = $("#luckysheetTableContentF").get(0).getContext("2d"); -// } -// offlinecanvas.fillStyle = "#ffffff"; -// offlinecanvas.fillRect( -// 0, -// 0, -// Store.luckysheetTableContentHW[0] * Store.devicePixelRatio, -// Store.luckysheetTableContentHW[1] * Store.devicePixelRatio -// ); -// offlinecanvas.font = luckysheetdefaultstyle.font; -// offlinecanvas.textBaseline = "top"; -// offlinecanvas.fillStyle = luckysheetdefaultstyle.fillStyle; - -// // -// let dataset_row_st, dataset_row_ed, dataset_col_st, dataset_col_ed; - -// dataset_row_st = luckysheet_searcharray(Store.visibledatarow, scrollHeight); -// dataset_row_ed = luckysheet_searcharray(Store.visibledatarow, scrollHeight + drawHeight); - -// if (dataset_row_st == -1) { -// dataset_row_st = 0; -// } - -// dataset_row_st += rowOffsetCell; - -// if (dataset_row_ed == -1) { -// dataset_row_ed = Store.visibledatarow.length - 1; -// } - -// dataset_row_ed += rowOffsetCell; - -// if (dataset_row_ed >= Store.visibledatarow.length) { -// dataset_row_ed = Store.visibledatarow.length - 1; -// } - -// dataset_col_st = luckysheet_searcharray(Store.visibledatacolumn, scrollWidth); -// dataset_col_ed = luckysheet_searcharray(Store.visibledatacolumn, scrollWidth + drawWidth); - -// if (dataset_col_st == -1) { -// dataset_col_st = 0; -// } - -// dataset_col_st += columnOffsetCell; - -// if (dataset_col_ed == -1) { -// dataset_col_ed = Store.visibledatacolumn.length - 1; -// } - -// dataset_col_ed += columnOffsetCell; - -// if (dataset_col_ed >= Store.visibledatacolumn.length) { -// dataset_col_ed = Store.visibledatacolumn.length - 1; -// } - - -// let fill_row_st, fill_row_ed, fill_col_st, fill_col_ed; -// if(dataset_row_st == 0){ -// fill_row_st = 0; -// } -// else{ -// fill_row_st = Store.visibledatarow[dataset_row_st - 1]; -// } - -// fill_row_ed = Store.visibledatarow[dataset_row_ed]; - -// if(dataset_col_st == 0){ -// fill_col_st = 0; -// } -// else{ -// fill_col_st = Store.visibledatacolumn[dataset_col_st - 1]; -// } - -// fill_col_ed = Store.visibledatacolumn[dataset_col_ed]; - -// luckysheetTableContent.fillStyle = "#ffffff"; -// luckysheetTableContent.fillRect( -// (offsetLeft - 1) * Store.devicePixelRatio, -// (offsetTop - 1) * Store.devicePixelRatio, -// (fill_col_ed - scrollWidth) * Store.devicePixelRatio, -// (fill_row_ed - scrollHeight) * Store.devicePixelRatio -// ); -// luckysheetTableContent.font = luckysheetdefaultstyle.font; -// luckysheetTableContent.textBaseline = "top"; -// luckysheetTableContent.fillStyle = luckysheetdefaultstyle.fillStyle; - -// let end_r, start_r, end_c, start_c; - -// let cellupdate = []; -// let mergeCache = {}; - -// let borderOffset = {}; - -// for (let r = dataset_row_st; r <= dataset_row_ed; r++) { -// if (r == 0) { -// start_r = -scrollHeight - 1; -// } -// else { -// start_r = Store.visibledatarow[r - 1] - scrollHeight - 1; -// } - -// end_r = Store.visibledatarow[r] - scrollHeight; - -// for (let c = dataset_col_st; c <= dataset_col_ed; c++) { -// if (c == 0) { -// start_c = -scrollWidth; -// } -// else { -// start_c = Store.visibledatacolumn[c - 1] - scrollWidth; -// } - -// end_c = Store.visibledatacolumn[c] - scrollWidth; - -// //横线 -// if(c == dataset_col_ed && !Store.luckysheetcurrentisPivotTable){ -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo( -// Store.devicePixelRatio * (offsetLeft - 1), -// Store.devicePixelRatio * (end_r + offsetTop - 2 + 0.5) -// ); -// luckysheetTableContent.lineTo( -// Store.devicePixelRatio * (fill_col_ed - scrollWidth + offsetLeft - 2), -// Store.devicePixelRatio * (end_r + offsetTop - 2 + 0.5) -// ); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; -// luckysheetTableContent.strokeStyle = luckysheetdefaultstyle.strokeStyle; -// luckysheetTableContent.closePath(); -// luckysheetTableContent.stroke(); -// } - -// //竖线 -// if(r == dataset_row_st && !Store.luckysheetcurrentisPivotTable){ -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo( -// Store.devicePixelRatio * (end_c + offsetLeft - 2 + 0.5), -// Store.devicePixelRatio * (offsetTop - 1) -// ); -// luckysheetTableContent.lineTo( -// Store.devicePixelRatio * (end_c + offsetLeft - 2 + 0.5), -// Store.devicePixelRatio * (fill_row_ed - scrollHeight + offsetTop - 2) -// ); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; -// luckysheetTableContent.strokeStyle = luckysheetdefaultstyle.strokeStyle; -// luckysheetTableContent.closePath(); -// luckysheetTableContent.stroke(); -// } - -// //数据透视表 -// if (!!Store.luckysheetcurrentisPivotTable && pivotTable.drawPivotTable) { -// if ((c == 0 || c == 5) && r <= 11) { -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo( -// Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft), -// Store.devicePixelRatio * (start_r + offsetTop) -// ); -// luckysheetTableContent.lineTo( -// Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft), -// Store.devicePixelRatio * (end_r - 2 + offsetTop) -// ); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; -// luckysheetTableContent.strokeStyle = "#000000"; -// luckysheetTableContent.closePath(); -// luckysheetTableContent.stroke(); -// } - -// if ((r == 2 || r == 11) && c <= 5) { -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo( -// Store.devicePixelRatio * (start_c - 1 + offsetLeft), -// Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop) -// ); -// luckysheetTableContent.lineTo( -// Store.devicePixelRatio * (end_c - 2 + offsetLeft), -// Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop) -// ); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; -// luckysheetTableContent.strokeStyle = "#000000"; -// luckysheetTableContent.closePath(); -// luckysheetTableContent.stroke(); -// } - -// if (r == 6 && c == 3) { -// luckysheetTableContent.fillText( -// "数据透视表", -// Store.devicePixelRatio * (start_c + 4 + offsetLeft), -// Store.devicePixelRatio *(start_r + (end_r - start_r) / 2 - 1 + offsetTop) -// ); -// } -// } -// else if (!!Store.luckysheetcurrentisPivotTable) { -// if (c < pivotTable.pivotTableBoundary[1] && r < pivotTable.pivotTableBoundary[0]) { -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo( -// Store.devicePixelRatio*(end_c - 2 + 0.5 + offsetLeft), -// Store.devicePixelRatio*(start_r + offsetTop) -// ); -// luckysheetTableContent.lineTo( -// Store.devicePixelRatio*(end_c - 2 + 0.5 + offsetLeft), -// Store.devicePixelRatio*(end_r - 2 + offsetTop) -// ); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; -// luckysheetTableContent.strokeStyle = "#000000"; -// luckysheetTableContent.closePath(); -// luckysheetTableContent.stroke(); - -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo( -// Store.devicePixelRatio*(start_c - 1 + offsetLeft), -// Store.devicePixelRatio*(end_r - 2 + 0.5 + offsetTop) -// ); -// luckysheetTableContent.lineTo( -// Store.devicePixelRatio*(end_c - 2 + offsetLeft), -// Store.devicePixelRatio*(end_r - 2 + 0.5 + offsetTop) -// ); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; -// luckysheetTableContent.strokeStyle = "#000000"; -// luckysheetTableContent.closePath(); -// luckysheetTableContent.stroke(); -// } -// } - -// if (Store.config["rowhidden"] != null && Store.config["rowhidden"][r] != null) { - -// } -// else { -// let firstcolumlen = Store.defaultcollen; -// if (Store.config["columlen"] != null && Store.config["columlen"][c] != null) { -// firstcolumlen = Store.config["columlen"][c]; -// } - -// if (Store.flowdata[r] != null && Store.flowdata[r][c] != null) { -// let value = Store.flowdata[r][c]; - -// if(getObjType(value) == "object" && ("mc" in value)){ -// borderOffset[r + "_" + c] = { -// "start_r": start_r, -// "start_c": start_c, -// "end_r": end_r, -// "end_c": end_c -// }; - -// if("rs" in value["mc"]){ -// let key = "r"+ r + "c" + c; -// mergeCache[key] = cellupdate.length; -// } -// else{ -// let key = "r"+ value["mc"].r + "c" + value["mc"].c; -// let margeMain = cellupdate[mergeCache[key]]; - -// if(margeMain == null){ -// mergeCache[key] = cellupdate.length; -// cellupdate.push({ -// "r": r, -// "c": c, -// "start_c": start_c, -// "start_r": start_r, -// "end_r": end_r, -// "end_c": end_c, -// "firstcolumlen": firstcolumlen, -// startlist: [] -// }); -// } -// else{ -// if(margeMain.c == c){ -// margeMain.end_r += (end_r - start_r - 1); -// margeMain.startlist.push(start_r); -// } - -// if(margeMain.r == r){ -// margeMain.end_c += (end_c - start_c); -// margeMain.firstcolumlen += firstcolumlen; -// } -// } - -// continue; -// } -// } -// } - -// cellupdate.push({ -// "r": r, -// "c": c, -// "start_r": start_r, -// "start_c": start_c, -// "end_r": end_r, -// "end_c": end_c, -// "firstcolumlen": firstcolumlen, -// startlist: [] -// }); -// borderOffset[r + "_" + c] = { -// "start_r": start_r, -// "start_c": start_c, -// "end_r": end_r, -// "end_c": end_c -// }; -// } -// } -// } - -// //动态数组公式计算 -// let dynamicArray_compute = dynamicArrayCompute(Store.luckysheetfile[getSheetIndex(Store.currentSheetIndex)]["dynamicArray"]); - -// //交替颜色计算 -// let af_compute = alternateformat.getComputeMap(); - -// //条件格式计算 -// let cf_compute = conditionformat.getComputeMap(); - -// //sparklines渲染 -// let sparklinesRender = function(r, c, offsetX, offsetY, canvasid, ctx){ -// if(Store.flowdata[r] == null || Store.flowdata[r][c] == null){ -// return; -// } - -// let sparklines = Store.flowdata[r][c].spl; -// if(sparklines != null){ -// if(typeof sparklines == "string"){ -// sparklines = eval('('+ sparklines +')'); -// } - -// if(getObjType(sparklines) == "object"){ -// let temp1 = sparklines; -// let x = temp1.offsetX; -// let y = temp1.offsetY; -// x = x == null ? 0 : x; -// y = y == null ? 0 : y; -// luckysheetSparkline.render( -// temp1.shapeseq, -// temp1.shapes, -// offsetX + x, -// offsetY + y, -// temp1.pixelWidth, -// temp1.pixelHeight, -// canvasid, -// ctx -// ); -// } -// else if(getObjType(sparklines) == "array" && getObjType(sparklines[0]) == "object"){ -// for(let i = 0; i < sparklines.length; i++){ -// let temp1 = sparklines[i]; -// let x = temp1.offsetX; -// let y = temp1.offsetY; -// x = x == null ? 0 : x; -// y = y == null ? 0 : y; -// luckysheetSparkline.render( -// temp1.shapeseq, -// temp1.shapes, -// offsetX + x, -// offsetY + y, -// temp1.pixelWidth, -// temp1.pixelHeight, -// canvasid, -// ctx -// ); -// } -// } -// } -// } - -// //空白单元格渲染 -// let nullCellRender = function(r, c, start_r, start_c, end_r, end_c){ -// let checksAF = alternateformat.checksAF(r, c, af_compute); //交替颜色 -// let checksCF = conditionformat.checksCF(r, c, cf_compute); //条件格式 - -// let borderfix = menuButton.borderfix(Store.flowdata, r, c); - -// //背景色 -// luckysheetTableContent.fillStyle = menuButton.checkstatus(Store.flowdata, r, c , "bg"); - -// if(checksAF != null && checksAF[1] != null){//交替颜色 -// luckysheetTableContent.fillStyle = checksAF[1]; -// } - -// if(checksCF != null && checksCF["cellColor"] != null){//条件格式 -// luckysheetTableContent.fillStyle = checksCF["cellColor"]; -// } - -// if(Store.flowdata[r][c] != null && Store.flowdata[r][c].tc != null){//标题色 -// luckysheetTableContent.fillStyle = Store.flowdata[r][c].tc; -// } - -// let cellsize = [ -// Store.devicePixelRatio * (start_c + offsetLeft + borderfix[0]), -// Store.devicePixelRatio * (start_r + offsetTop + 1 + borderfix[1]), -// Store.devicePixelRatio * (end_c - start_c - 3 + borderfix[2]), -// Store.devicePixelRatio * (end_r - start_r - 3 - 0.5 + borderfix[3]) -// ]; -// luckysheetTableContent.fillRect(cellsize[0], cellsize[1], cellsize[2], cellsize[3]); - -// if((r + "_" + c) in dynamicArray_compute){ -// let value = dynamicArray_compute[r + "_" + c].v; - -// luckysheetTableContent.fillStyle = "#000000"; -// //文本宽度和高度 -// let fontset = luckysheetdefaultstyle.font; -// luckysheetTableContent.font = fontset; - -// let textMetrics = luckysheetTableContent.measureText(value).width; -// let oneLineTextHeight = menuButton.getTextSize("田", fontset)[1]; - -// //水平对齐 (默认为1,左对齐) -// let horizonAlignPos = (start_c + 4 + offsetLeft) * Store.devicePixelRatio; - -// //垂直对齐 (默认为2,下对齐) -// let verticalFixed = browser.luckysheetrefreshfixed(); -// let verticalAlignPos = (end_r + offsetTop - 2) * Store.devicePixelRatio; -// luckysheetTableContent.textBaseline = 'bottom'; - -// luckysheetTableContent.fillText(value == null ? "" : value, horizonAlignPos, verticalAlignPos); -// } - -// //若单元格有批注 -// if(Store.flowdata[r][c] != null && Store.flowdata[r][c].ps != null){ -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo(Store.devicePixelRatio * (end_c + offsetLeft - 6), Store.devicePixelRatio * (start_r + offsetTop)); -// luckysheetTableContent.lineTo(Store.devicePixelRatio * (end_c + offsetLeft - 1), Store.devicePixelRatio * (start_r + offsetTop)); -// luckysheetTableContent.lineTo(Store.devicePixelRatio * (end_c + offsetLeft - 1), Store.devicePixelRatio * (start_r + offsetTop + 5)); -// luckysheetTableContent.fillStyle = "#FC6666"; -// luckysheetTableContent.fill(); -// luckysheetTableContent.closePath(); -// } - -// //右边框 -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo(Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft), Store.devicePixelRatio * (start_r + offsetTop)); -// luckysheetTableContent.lineTo(Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft), Store.devicePixelRatio * (end_r - 2 + offsetTop)); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; - -// if (!!Store.luckysheetcurrentisPivotTable && !pivotTable.drawPivotTable) { -// luckysheetTableContent.strokeStyle = "#000000"; -// } -// else{ -// luckysheetTableContent.strokeStyle = luckysheetdefaultstyle.strokeStyle; -// } - -// luckysheetTableContent.stroke(); -// luckysheetTableContent.closePath(); - -// //下边框 -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo(Store.devicePixelRatio * (start_c - 2 + offsetLeft), Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop)); -// luckysheetTableContent.lineTo(Store.devicePixelRatio * (end_c + offsetLeft - 2), Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop)); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; - -// if (!!Store.luckysheetcurrentisPivotTable && !pivotTable.drawPivotTable) { -// luckysheetTableContent.strokeStyle = "#000000"; -// } -// else{ -// luckysheetTableContent.strokeStyle = luckysheetdefaultstyle.strokeStyle; -// } - -// luckysheetTableContent.stroke(); -// luckysheetTableContent.closePath(); -// } - -// //非空白单元格渲染 -// let cellRender = function(r, c, start_r, start_c, end_r, end_c, value, canvasType){ -// let checksAF = alternateformat.checksAF(r, c, af_compute); //交替颜色 -// let checksCF = conditionformat.checksCF(r, c, cf_compute); //条件格式 - -// let borderfix = menuButton.borderfix(Store.flowdata, r, c); - -// //文本宽度和高度 -// let fontset = luckysheetfontformat(Store.flowdata[r][c]); -// luckysheetTableContent.font = fontset; - -// let measureText = luckysheetTableContent.measureText(value); -// let textMetrics = measureText.width; -// // let oneLineTextHeight = menuButton.getTextSize("田", fontset)[1]; -// // let oneLineTextHeight = menuButton.getTextSize(value, fontset)[1]; -// let oneLineTextHeight = measureText.actualBoundingBoxDescent - measureText.actualBoundingBoxAscent; - -// let textW, textH; - -// if(Store.flowdata[r][c].tb == "2"){ -// let strValue = value.toString(); -// let tbWidth = luckysheetTableContent.measureText(strValue).width; -// let cellWidth = end_c - start_c - 8; - -// if(tbWidth > cellWidth){ -// let strArr = [];//文本截断数组 -// strArr = getCellTextSplitArr(strValue, strArr, cellWidth, luckysheetTableContent); -// textH = strArr.length * oneLineTextHeight; -// } -// else{ -// textH = oneLineTextHeight; -// } -// } -// else if(Store.flowdata[r][c].tr != null && Store.flowdata[r][c].tr != "0"){ -// let tr = Store.flowdata[r][c].tr; - -// if(tr == "1" || tr == "2"){ -// textW = 0.707 * (textMetrics + oneLineTextHeight); -// textH = 0.707 * (textMetrics + oneLineTextHeight); -// } -// else if(tr == "3"){ -// value = value.toString(); - -// let vArr; -// if(value.length > 1){ -// vArr = value.split(""); -// } -// else{ -// vArr = []; -// vArr.push(value); -// } - -// textW = luckysheetTableContent.measureText(vArr[0]).width; -// textH = vArr.length * oneLineTextHeight; -// } -// else if(tr == "4" || tr == "5"){ -// textW = oneLineTextHeight; -// textH = textMetrics; -// } -// } -// else{ -// textW = textMetrics; -// textH = oneLineTextHeight; -// } - -// //水平对齐 -// let horizonAlign = menuButton.checkstatus(Store.flowdata, r, c , "ht"); -// //垂直对齐 -// let verticalAlign = menuButton.checkstatus(Store.flowdata, r, c , "vt"); - -// //水平对齐方式是 居中或居右对齐 且单元格宽度小于文字宽度 (用离屏canvas渲染) -// let canvasName, cellsize; -// if(browser.BrowserType() != "Safari" && (canvasType == "offline" || ((horizonAlign == "0" || horizonAlign == "2") && (end_c - start_c) < textW) || ((end_r - start_r) < textH))){ -// canvasName = offlinecanvas; -// canvasName.font = fontset; - -// cellsize = [ -// Store.devicePixelRatio * (start_c + offsetLeft + borderfix[0]), -// Store.devicePixelRatio * (start_r + offsetTop + 0.5 + borderfix[1]), -// Store.devicePixelRatio * (end_c - start_c - 3 + borderfix[2]), -// Store.devicePixelRatio * (end_r - start_r - 3 - 0.5 + borderfix[3]) -// ]; -// } -// else{ -// canvasName = luckysheetTableContent; - -// cellsize = [ -// Store.devicePixelRatio * (start_c + offsetLeft + borderfix[0]), -// Store.devicePixelRatio * (start_r + offsetTop + 1 + borderfix[1]), -// Store.devicePixelRatio * (end_c - start_c - 3 + borderfix[2]), -// Store.devicePixelRatio * (end_r - start_r - 3 - 0.5 + borderfix[3]) -// ]; -// } - -// //horizonAlign默认为1,左对齐 -// let horizonAlignPos = (start_c + 4 + offsetLeft) * Store.devicePixelRatio; -// if(horizonAlign == "0"){ -// //居中对齐 -// horizonAlignPos = (start_c + (end_c - start_c) / 2 + offsetLeft) * Store.devicePixelRatio - (textMetrics) / 2; -// } -// else if(horizonAlign == "2"){ -// //右对齐 -// horizonAlignPos = (end_c + offsetLeft - 8) * Store.devicePixelRatio - (textMetrics); -// } - -// //verticalAlign默认为2,下对齐 -// let verticalFixed = browser.luckysheetrefreshfixed(); -// let verticalAlignPos = (end_r + offsetTop - 2 + verticalFixed) * Store.devicePixelRatio - oneLineTextHeight; -// let verticalAlignPos_text = (end_r + offsetTop - 2 + verticalFixed) * Store.devicePixelRatio; -// canvasName.textBaseline = "bottom"; - -// if(verticalAlign == "0"){ -// //居中对齐 -// verticalAlignPos = (start_r + offsetTop + (end_r - start_r) / 2 + verticalFixed) * Store.devicePixelRatio - oneLineTextHeight / 2; -// verticalAlignPos_text = (start_r + offsetTop + (end_r - start_r) / 2 + verticalFixed) * Store.devicePixelRatio; -// canvasName.textBaseline = "middle"; -// } -// else if(verticalAlign == "1"){ -// //上对齐 -// verticalAlignPos = (start_r + offsetTop + 2 + verticalFixed) * Store.devicePixelRatio; -// verticalAlignPos_text = (start_r + offsetTop + 2 + verticalFixed) * Store.devicePixelRatio; -// canvasName.textBaseline = "top"; -// } - -// //单元格 背景颜色 -// canvasName.fillStyle= menuButton.checkstatus(Store.flowdata, r, c , "bg"); - -// //若单元格有交替颜色 背景颜色 -// if(checksAF != null && checksAF[1] != null){ -// canvasName.fillStyle = checksAF[1]; -// } - -// //若单元格有条件格式 背景颜色 -// if(checksCF != null && checksCF["cellColor"] != null){ -// canvasName.fillStyle = checksCF["cellColor"]; -// } - -// //若单元格有标题色 -// if(Store.flowdata[r][c] != null && Store.flowdata[r][c].tc != null){ -// luckysheetTableContent.fillStyle = Store.flowdata[r][c].tc; -// } - -// canvasName.fillRect(cellsize[0], cellsize[1], cellsize[2], cellsize[3]); - -// //若单元格有批注 -// if(Store.flowdata[r][c].ps != null){ -// canvasName.beginPath(); -// canvasName.moveTo(Store.devicePixelRatio * (end_c + offsetLeft - 6), Store.devicePixelRatio * (start_r + offsetTop)); -// canvasName.lineTo(Store.devicePixelRatio * (end_c + offsetLeft - 1), Store.devicePixelRatio * (start_r + offsetTop)); -// canvasName.lineTo(Store.devicePixelRatio * (end_c + offsetLeft - 1), Store.devicePixelRatio * (start_r + offsetTop + 5)); -// canvasName.fillStyle = "#FC6666"; -// canvasName.fill(); -// canvasName.closePath(); -// } - -// //若单元格有条件格式数据条 -// if(checksCF != null && checksCF["dataBar"] != null){ -// let x = Store.devicePixelRatio * (start_c + offsetLeft + borderfix[0] + 2); -// let y = Store.devicePixelRatio * (start_r + offsetTop + 0.5 + borderfix[1] + 2); -// let w = Store.devicePixelRatio * (end_c - start_c - 3 + borderfix[2] - 4); -// let h = Store.devicePixelRatio * (end_r - start_r - 3 - 0.5 + borderfix[3] - 4); - -// let valueType = checksCF["dataBar"]["valueType"]; -// let valueLen = checksCF["dataBar"]["valueLen"]; -// let format = checksCF["dataBar"]["format"]; - -// if(format.length > 1){ //渐变 -// if(valueType == "minus"){ -// //负数 -// let minusLen = checksCF["dataBar"]["minusLen"]; - -// let my_gradient = canvasName.createLinearGradient(x + w * minusLen * (1 - valueLen), y, x + w * minusLen, y); -// my_gradient.addColorStop(0, "#ffffff"); -// my_gradient.addColorStop(1, "#ff0000"); -// canvasName.fillStyle = my_gradient; -// canvasName.fillRect(x + w * minusLen * (1 - valueLen), y, w * minusLen * valueLen, h); - -// canvasName.beginPath(); -// canvasName.moveTo(x + w * minusLen * (1 - valueLen), y); -// canvasName.lineTo(x + w * minusLen * (1 - valueLen), y + h); -// canvasName.lineTo(x + w * minusLen, y + h); -// canvasName.lineTo(x + w * minusLen, y); -// canvasName.lineTo(x + w * minusLen * (1 - valueLen), y); -// canvasName.lineWidth = Store.devicePixelRatio; -// canvasName.strokeStyle = "#ff0000"; -// canvasName.stroke(); -// canvasName.closePath(); -// } -// else if(valueType == "plus"){ -// //正数 -// let plusLen = checksCF["dataBar"]["plusLen"]; - -// if(plusLen == 1){ -// let my_gradient = canvasName.createLinearGradient(x, y, x + w * valueLen, y); -// my_gradient.addColorStop(0, format[0]); -// my_gradient.addColorStop(1, format[1]); -// canvasName.fillStyle = my_gradient; -// canvasName.fillRect(x, y, w * valueLen, h); - -// canvasName.beginPath(); -// canvasName.moveTo(x, y); -// canvasName.lineTo(x, y + h); -// canvasName.lineTo(x + w * valueLen, y + h); -// canvasName.lineTo(x + w * valueLen, y); -// canvasName.lineTo(x, y); -// canvasName.lineWidth = Store.devicePixelRatio; -// canvasName.strokeStyle = format[0]; -// canvasName.stroke(); -// canvasName.closePath(); -// } -// else{ -// let minusLen = checksCF["dataBar"]["minusLen"]; - -// let my_gradient = canvasName.createLinearGradient(x + w * minusLen, y, x + w * minusLen + w * plusLen * valueLen, y); -// my_gradient.addColorStop(0, format[0]); -// my_gradient.addColorStop(1, format[1]); -// canvasName.fillStyle = my_gradient; -// canvasName.fillRect(x + w * minusLen, y, w * plusLen * valueLen, h); - -// canvasName.beginPath(); -// canvasName.moveTo(x + w * minusLen, y); -// canvasName.lineTo(x + w * minusLen, y + h); -// canvasName.lineTo(x + w * minusLen + w * plusLen * valueLen, y + h); -// canvasName.lineTo(x + w * minusLen + w * plusLen * valueLen, y); -// canvasName.lineTo(x + w * minusLen, y); -// canvasName.lineWidth = Store.devicePixelRatio; -// canvasName.strokeStyle = format[0]; -// canvasName.stroke(); -// canvasName.closePath(); -// } -// } -// } -// else{ //单色 -// if(valueType == "minus"){ -// //负数 -// let minusLen = checksCF["dataBar"]["minusLen"]; - -// canvasName.fillStyle = "#ff0000"; -// canvasName.fillRect(x + w * minusLen * (1 - valueLen), y, w * minusLen * valueLen, h); - -// canvasName.beginPath(); -// canvasName.moveTo(x + w * minusLen * (1 - valueLen), y); -// canvasName.lineTo(x + w * minusLen * (1 - valueLen), y + h); -// canvasName.lineTo(x + w * minusLen, y + h); -// canvasName.lineTo(x + w * minusLen, y); -// canvasName.lineTo(x + w * minusLen * (1 - valueLen), y); -// canvasName.lineWidth = Store.devicePixelRatio; -// canvasName.strokeStyle = "#ff0000"; -// canvasName.stroke(); -// canvasName.closePath(); -// } -// else if(valueType == "plus"){ -// //正数 -// let plusLen = checksCF["dataBar"]["plusLen"]; - -// if(plusLen == 1){ -// canvasName.fillStyle = format[0]; -// canvasName.fillRect(x, y, w * valueLen, h); - -// canvasName.beginPath(); -// canvasName.moveTo(x, y); -// canvasName.lineTo(x, y + h); -// canvasName.lineTo(x + w * valueLen, y + h); -// canvasName.lineTo(x + w * valueLen, y); -// canvasName.lineTo(x, y); -// canvasName.lineWidth = Store.devicePixelRatio; -// canvasName.strokeStyle = format[0]; -// canvasName.stroke(); -// canvasName.closePath(); -// } -// else{ -// let minusLen = checksCF["dataBar"]["minusLen"]; - -// canvasName.fillStyle = format[0]; -// canvasName.fillRect(x + w * minusLen, y, w * plusLen * valueLen, h); - -// canvasName.beginPath(); -// canvasName.moveTo(x + w * minusLen, y); -// canvasName.lineTo(x + w * minusLen, y + h); -// canvasName.lineTo(x + w * minusLen + w * plusLen * valueLen, y + h); -// canvasName.lineTo(x + w * minusLen + w * plusLen * valueLen, y); -// canvasName.lineTo(x + w * minusLen, y); -// canvasName.lineWidth = Store.devicePixelRatio; -// canvasName.strokeStyle = format[0]; -// canvasName.stroke(); -// canvasName.closePath(); -// } -// } -// } -// } - -// //若单元格有条件格式图标集 -// if(checksCF != null && checksCF["icons"] != null){ -// let l = checksCF["icons"]["left"]; -// let t = checksCF["icons"]["top"]; - -// canvasName.drawImage( -// luckysheet_CFiconsImg, -// l * 42, -// t * 32, -// 32, -// 32, -// cellsize[0], -// verticalAlignPos + 2, -// oneLineTextHeight - 2, -// oneLineTextHeight - 2 -// ); - -// if(horizonAlign != "0" && horizonAlign != "2"){ //左对齐时 文本渲染空出一个图标的距离 -// horizonAlignPos = horizonAlignPos + oneLineTextHeight - 2; -// } -// } - -// //单元格 文本颜色 -// canvasName.fillStyle = menuButton.checkstatus(Store.flowdata, r, c , "fc"); - -// //若单元格有交替颜色 文本颜色 -// if(checksAF != null && checksAF[0] != null){ -// canvasName.fillStyle = checksAF[0]; -// } - -// //若单元格有条件格式 文本颜色 -// if(checksCF != null && checksCF["textColor"] != null){ -// canvasName.fillStyle = checksCF["textColor"]; -// } - -// //单元格有下钻属性,文本颜色变成超链接的颜色 -// if(Store.flowdata[r][c].dd != null){ -// canvasName.fillStyle = "#0000ff"; - -// canvasName.fillText(value == null ? "" : value, horizonAlignPos, verticalAlignPos_text); - -// canvasName.beginPath(); -// canvasName.strokeStyle = "#0000ff"; -// canvasName.moveTo(horizonAlignPos, verticalAlignPos + oneLineTextHeight); -// canvasName.lineTo(horizonAlignPos + textMetrics, verticalAlignPos + oneLineTextHeight); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// else{ -// //自动换行、旋转、删除线功能 -// if(Store.flowdata[r][c].tb == "2"){ -// canvasName.textBaseline = 'top'; //自动换行 textBaseline以top计算 - -// let strValue = value.toString(); -// let cellWidth = end_c - start_c - 8; - -// let strArr = [];//文本截断数组 -// strArr = getCellTextSplitArr(strValue, strArr, cellWidth, canvasName); - -// for(let iFill = 0; iFill < strArr.length; iFill++){ -// //水平对齐计算 -// let strWidth = canvasName.measureText(strArr[iFill]).width; -// if(horizonAlign == "0"){ -// horizonAlignPos = (start_c + (end_c - start_c) / 2 + offsetLeft) * Store.devicePixelRatio - (strWidth)/2; -// } -// else if(horizonAlign == "2"){ -// horizonAlignPos = (end_c + offsetLeft - 8) * Store.devicePixelRatio - (strWidth); -// } - -// //垂直对齐计算 -// if(verticalAlign == "0"){ -// verticalAlignPos = (start_r + (end_r - start_r) / 2 + offsetTop + verticalFixed) * Store.devicePixelRatio - oneLineTextHeight * strArr.length / 2; -// } -// else if(verticalAlign == "1"){ -// verticalAlignPos = (start_r + offsetTop + verticalFixed) * Store.devicePixelRatio; -// } -// else{ -// verticalAlignPos = (end_r + offsetTop - 2 + verticalFixed) * Store.devicePixelRatio - oneLineTextHeight * strArr.length; -// } - -// canvasName.fillText(strArr[iFill], horizonAlignPos, (verticalAlignPos + iFill * oneLineTextHeight)); -// } -// } -// else if(Store.flowdata[r][c].tr != null && Store.flowdata[r][c].tr != "0"){ -// canvasName.textBaseline = 'top'; //旋转 textBaseline以top计算 - -// //单元格旋转属性 -// let tr = Store.flowdata[r][c].tr; - -// if(tr == "1" || tr == "2"){ -// //旋转重新计算水平、垂直方向坐标 -// let textW = 0.707 * (textMetrics + oneLineTextHeight); -// let textH = 0.707 * (textMetrics + oneLineTextHeight); - -// let hAP = (start_c + 4 + offsetLeft) * Store.devicePixelRatio; -// if(horizonAlign == "0"){ -// hAP = (start_c + (end_c - start_c) / 2 + offsetLeft) * Store.devicePixelRatio - (textW) / 2; -// } -// else if(horizonAlign == "2"){ -// hAP = (end_c + offsetLeft - 8) * Store.devicePixelRatio - (textW); -// } - -// let vAP = (end_r + offsetTop - 2 + verticalFixed) * Store.devicePixelRatio - textH; -// if(verticalAlign == "0"){ -// vAP = (start_r + (end_r - start_r) / 2 + offsetTop + verticalFixed) * Store.devicePixelRatio - textH / 2; -// } -// else if(verticalAlign == "1"){ -// vAP = (start_r + offsetTop + verticalFixed) * Store.devicePixelRatio; -// } - -// //向下倾斜(45 旋转) -// if(tr == "1"){ -// canvasName.save(); -// canvasName.translate(hAP, vAP); -// canvasName.rotate(45 * Math.PI / 180); -// canvasName.translate(-hAP, -vAP); -// canvasName.fillText(value == null ? "" : value, hAP + (0.707 * 0.707 * oneLineTextHeight), vAP - (0.707 * 0.707 * oneLineTextHeight)); -// canvasName.restore(); - -// //是否有删除线 -// let cl = menuButton.checkstatus(Store.flowdata, r, c , "cl"); -// if(cl == "1" && !isRealNull(value)){ -// canvasName.beginPath(); -// canvasName.strokeStyle = "#000"; -// canvasName.moveTo(hAP + oneLineTextHeight / 2, vAP + oneLineTextHeight / 2); -// canvasName.lineTo(hAP + textW - oneLineTextHeight / 2, vAP + textH - oneLineTextHeight / 2); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// } - -// //向上倾斜(-45 旋转) -// if(tr == "2"){ -// canvasName.save(); -// canvasName.translate(hAP, vAP + textH); -// canvasName.rotate(-45 * Math.PI / 180); -// canvasName.translate(-hAP, -(vAP + textH)); -// canvasName.fillText(value == null ? "" : value, hAP + (0.707 * 0.707 * oneLineTextHeight), vAP + textH - (0.707 * 0.707 * oneLineTextHeight)); -// canvasName.restore(); - -// //是否有删除线 -// let cl = menuButton.checkstatus(Store.flowdata, r, c , "cl"); -// if(cl == "1" && !isRealNull(value)){ -// canvasName.beginPath(); -// canvasName.strokeStyle = "#000"; -// canvasName.moveTo(hAP + oneLineTextHeight / 2, vAP + textH - oneLineTextHeight / 2); -// canvasName.lineTo(hAP + textW - oneLineTextHeight / 2, vAP + oneLineTextHeight / 2); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// } -// } -// else if(tr == "3"){ -// if(!isRealNull(value)){ -// value = value.toString(); - -// let vArr; -// if(value.length > 1){ -// vArr = value.split(""); -// } -// else{ -// vArr = []; -// vArr.push(value); -// } - -// let textW = canvasName.measureText(vArr[0]).width; -// let textH = vArr.length * oneLineTextHeight; - -// for(let i = 0; i < vArr.length; i++){ -// let vWidth = canvasName.measureText(vArr[i]).width; - -// //水平对齐计算 -// if(horizonAlign == "0"){ -// horizonAlignPos = (start_c + (end_c - start_c) / 2 + offsetLeft) * Store.devicePixelRatio - (vWidth)/2; -// } -// else if(horizonAlign == "2"){ -// horizonAlignPos = (end_c + offsetLeft - 8) * Store.devicePixelRatio - (vWidth); -// } -// else{ -// horizonAlignPos = (start_c + 4 + offsetLeft) * Store.devicePixelRatio; -// } - -// //垂直对齐计算 -// if(verticalAlign == "0"){ -// verticalAlignPos = (start_r + (end_r - start_r) / 2 + offsetTop + verticalFixed) * Store.devicePixelRatio - oneLineTextHeight * vArr.length/2; -// } -// else if(verticalAlign == "1"){ -// verticalAlignPos = (start_r + offsetTop + verticalFixed) * Store.devicePixelRatio; -// } -// else{ -// verticalAlignPos = (end_r + offsetTop - 2 + verticalFixed) * Store.devicePixelRatio - oneLineTextHeight * vArr.length; -// } - -// canvasName.fillText(vArr[i], horizonAlignPos, (verticalAlignPos + i * oneLineTextHeight)); -// } - -// //是否有删除线 -// let cl = menuButton.checkstatus(Store.flowdata, r, c , "cl"); -// if(cl == "1" && !isRealNull(value)){ -// canvasName.beginPath(); -// canvasName.strokeStyle = "#000"; -// canvasName.moveTo(horizonAlignPos + textW / 2, verticalAlignPos); -// canvasName.lineTo(horizonAlignPos + textW / 2, verticalAlignPos + textH); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// } -// } -// else if(tr == "4" || tr == "5"){ -// //旋转重新计算水平、垂直方向坐标 -// let textW = oneLineTextHeight; -// let textH = textMetrics; - -// let hAP = (start_c + 4 + offsetLeft) * Store.devicePixelRatio; -// if(horizonAlign == "0"){ -// hAP = (start_c + (end_c - start_c) / 2 + offsetLeft) * Store.devicePixelRatio - (textW) / 2; -// } -// else if(horizonAlign == "2"){ -// hAP = (end_c + offsetLeft - 8) * Store.devicePixelRatio - (textW); -// } - -// let vAP = (end_r + offsetTop - 2 + verticalFixed) * Store.devicePixelRatio - textH; -// if(verticalAlign == "0"){ -// vAP = (start_r + (end_r - start_r) / 2 + offsetTop + verticalFixed) * Store.devicePixelRatio - textH / 2; -// } -// else if(verticalAlign == "1"){ -// vAP = (start_r + offsetTop + verticalFixed) * Store.devicePixelRatio; -// } - -// //向下90(90 旋转) -// if(tr == "4"){ -// canvasName.save(); -// canvasName.translate(hAP, vAP); -// canvasName.rotate(90 * Math.PI / 180); -// canvasName.translate(-hAP, -vAP); -// canvasName.fillText(value == null ? "" : value, hAP, vAP - textW); -// canvasName.restore(); - -// //是否有删除线 -// let cl = menuButton.checkstatus(Store.flowdata, r, c , "cl"); -// if(cl == "1" && !isRealNull(value)){ -// canvasName.beginPath(); -// canvasName.strokeStyle = "#000"; -// canvasName.moveTo(hAP + textW / 2, vAP); -// canvasName.lineTo(hAP + textW / 2, vAP + textH); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// } - -// //向上90(-90 旋转) -// if(tr == "5"){ -// canvasName.save(); -// canvasName.translate(hAP + textH, vAP); -// canvasName.rotate(-90 * Math.PI / 180); -// canvasName.translate(-(hAP + textH), -vAP); -// canvasName.fillText(value == null ? "" : value, hAP, vAP - textH); -// canvasName.restore(); - -// //是否有删除线 -// let cl = menuButton.checkstatus(Store.flowdata, r, c , "cl"); -// if(cl == "1" && !isRealNull(value)){ -// canvasName.beginPath(); -// canvasName.strokeStyle = "#000"; -// canvasName.moveTo(hAP + textW / 2, vAP); -// canvasName.lineTo(hAP + textW / 2, vAP + textH); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// } -// } -// } -// else{ -// canvasName.fillText(value == null ? "" : value, horizonAlignPos, verticalAlignPos_text); - -// //是否有删除线 -// let cl = menuButton.checkstatus(Store.flowdata, r, c , "cl"); -// if(cl == "1" && !isRealNull(value)){ -// canvasName.beginPath(); -// canvasName.strokeStyle = "#000"; -// canvasName.moveTo(horizonAlignPos, verticalAlignPos + oneLineTextHeight / 2); -// canvasName.lineTo(horizonAlignPos + textMetrics, verticalAlignPos + oneLineTextHeight / 2); -// canvasName.closePath(); -// canvasName.stroke(); -// } -// } -// } - -// //水平对齐方式是 居中或居右对齐 且单元格宽度小于文字宽度 (用离屏canvas渲染) -// if(browser.BrowserType() != "Safari" && (canvasType == "offline" || ((horizonAlign == "0" || horizonAlign == "2") && (end_c - start_c) < textW) || ((verticalAlign == "0" || verticalAlign == "2") && (end_r - start_r) < textH))){ -// canvasName.font = luckysheetdefaultstyle.font; - -// if($("#luckysheetTableContentF").length > 0){ -// luckysheetTableContent.drawImage($("#luckysheetTableContentF").get(0), cellsize[0], cellsize[1], cellsize[2], cellsize[3], cellsize[0], cellsize[1], cellsize[2], cellsize[3]); -// } -// else{ -// luckysheetTableContent.drawImage(offlineElement, cellsize[0], cellsize[1], cellsize[2], cellsize[3], cellsize[0], cellsize[1], cellsize[2], cellsize[3]); -// } -// } - -// luckysheetTableContent.font = luckysheetdefaultstyle.font; - -// //右边框 -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo(Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft), Store.devicePixelRatio * (start_r + offsetTop)); -// luckysheetTableContent.lineTo(Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft), Store.devicePixelRatio * (end_r - 2 + offsetTop)); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; - -// if (!!Store.luckysheetcurrentisPivotTable && !pivotTable.drawPivotTable) { -// luckysheetTableContent.strokeStyle = "#000000"; -// } -// else{ -// luckysheetTableContent.strokeStyle = luckysheetdefaultstyle.strokeStyle; -// } - -// luckysheetTableContent.stroke(); -// luckysheetTableContent.closePath(); - -// //下边框 -// luckysheetTableContent.beginPath(); -// luckysheetTableContent.moveTo(Store.devicePixelRatio * (start_c - 2 + offsetLeft), Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop)); -// luckysheetTableContent.lineTo(Store.devicePixelRatio * (end_c + offsetLeft - 2), Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop)); -// luckysheetTableContent.lineWidth = Store.devicePixelRatio; - -// if (!!Store.luckysheetcurrentisPivotTable && !pivotTable.drawPivotTable) { -// luckysheetTableContent.strokeStyle = "#000000"; -// } -// else{ -// luckysheetTableContent.strokeStyle = luckysheetdefaultstyle.strokeStyle; -// } - -// luckysheetTableContent.stroke(); -// luckysheetTableContent.closePath(); -// } - -// let mcArr = []; - -// for(let cud = 0; cud < cellupdate.length; cud++){ -// let item = cellupdate[cud]; -// let r = item.r, -// c = item.c, -// start_r = item.start_r, -// start_c = item.start_c, -// end_r = item.end_r, -// end_c = item.end_c; -// let firstcolumlen = item.firstcolumlen; - -// if(Store.flowdata[r] == null){ -// continue; -// } - -// if(Store.flowdata[r][c] == null){ //空单元格 -// nullCellRender(r, c, start_r, start_c, end_r, end_c); -// } -// else{ -// let cell = Store.flowdata[r][c]; -// let value = null, er = r, ec = c, end_ec = end_c; - -// if((typeof cell == "object") && "mc" in cell){ -// mcArr.push(cellupdate[cud]); - -// let margeMaindata = cell["mc"]; -// value = getcellvalue(margeMaindata.r, margeMaindata.c, null, "m"); - -// if(value == null){ -// value = getcellvalue(margeMaindata.r, margeMaindata.c); -// } - -// r = margeMaindata.r; -// c = margeMaindata.c; - -// er += margeMaindata.rs; -// ec += margeMaindata.rc; - -// if (c == 0) { -// start_c = -scrollWidth; -// } -// else { -// start_c = Store.visibledatacolumn[c - 1] - scrollWidth; -// } - -// if (r == 0) { -// start_r = -scrollHeight - 1; -// } -// else { -// start_r = Store.visibledatarow[r - 1] - scrollHeight - 1; -// } - -// end_ec = Store.visibledatacolumn[ec] - scrollWidth; -// } -// else{ -// value = getcellvalue(r, c, null, "m"); -// if(value == null){ -// value = getcellvalue(r, c); -// } -// } - -// if(value == null || value.toString().length == 0){ -// nullCellRender(r, c, start_r, start_c, end_r, end_c); - -// //sparklines渲染 -// let borderfix = menuButton.borderfix(Store.flowdata, r, c); -// let cellsize = [ -// Store.devicePixelRatio * (start_c + offsetLeft + borderfix[0]), -// Store.devicePixelRatio * (start_r + offsetTop + 0.5 + borderfix[1]), -// Store.devicePixelRatio * (end_c - start_c - 3 + borderfix[2]), -// Store.devicePixelRatio * (end_r - start_r - 3 - 0.5 + borderfix[3]) -// ]; -// sparklinesRender(r, c, cellsize[0], cellsize[1], "luckysheetTableContent", luckysheetTableContent); -// } -// else{ -// if((r + "_" + c) in dynamicArray_compute){//动态数组公式 -// value = dynamicArray_compute[r + "_" + c].v; -// } - -// cellRender(r, c, start_r, start_c, end_r, end_c, value); -// } -// } -// } - -// //合并单元格再处理 -// for(let m = 0; m < mcArr.length; m++){ -// let item = mcArr[m]; -// let r = item.r, -// c = item.c, -// start_r = item.start_r, -// start_c = item.start_c, -// end_r = item.end_r, -// end_c = item.end_c; -// let firstcolumlen = item.firstcolumlen; - -// let cell = Store.flowdata[r][c]; -// let value = null, er = r, ec = c, end_ec = end_c; - -// let margeMaindata = cell["mc"]; -// value = getcellvalue(margeMaindata.r, margeMaindata.c, null, "m"); - -// if(value == null){ -// value = getcellvalue(margeMaindata.r, margeMaindata.c); -// } - -// r = margeMaindata.r; -// c = margeMaindata.c; - -// er += margeMaindata.rs; -// ec += margeMaindata.rc; - -// if (c == 0) { -// start_c = -scrollWidth; -// } -// else { -// start_c = Store.visibledatacolumn[c - 1] - scrollWidth; -// } - -// if (r == 0) { -// start_r = -scrollHeight - 1; -// } -// else { -// start_r = Store.visibledatarow[r - 1] - scrollHeight - 1; -// } - -// end_ec = Store.visibledatacolumn[ec] - scrollWidth; - -// if(value == null || value.toString().length == 0){ -// nullCellRender(r, c, start_r, start_c, end_r, end_c); - -// //sparklines渲染 -// let borderfix = menuButton.borderfix(Store.flowdata, r, c); -// let cellsize = [ -// Store.devicePixelRatio * (start_c + offsetLeft + borderfix[0]), -// Store.devicePixelRatio * (start_r + offsetTop + 0.5 + borderfix[1]), -// Store.devicePixelRatio * (end_c - start_c - 3 + borderfix[2]), -// Store.devicePixelRatio * (end_r - start_r - 3 - 0.5 + borderfix[3]) -// ]; -// sparklinesRender(r, c, cellsize[0], cellsize[1], "luckysheetTableContent", luckysheetTableContent); -// } -// else{ -// if((r + "_" + c) in dynamicArray_compute){//动态数组公式 -// value = dynamicArray_compute[r + "_" + c].v; -// } - -// cellRender(r, c, start_r, start_c, end_r, end_c, value, "offline"); -// } -// } - -// //边框单独渲染 -// if(Store.config["borderInfo"] != null && Store.config["borderInfo"].length > 0){ -// //边框渲染 -// let borderLeftRender = function(style, color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, canvas){ -// let linetype = style; - -// let m_st = Store.devicePixelRatio * (start_c - 2 + 0.5 + offsetLeft); -// let m_ed = Store.devicePixelRatio * (start_r + offsetTop); -// let line_st = Store.devicePixelRatio * (start_c - 2 + 0.5 + offsetLeft); -// let line_ed = Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop); - -// menuButton.setLineDash(canvas, linetype, "v", m_st, m_ed, line_st, line_ed); - -// canvas.strokeStyle = color; - -// canvas.stroke(); -// canvas.closePath(); -// canvas.restore(); -// } - -// let borderRightRender = function(style, color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, canvas){ -// let linetype = style; - -// let m_st = Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft); -// let m_ed = Store.devicePixelRatio * (start_r + offsetTop); -// let line_st = Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft); -// let line_ed = Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop); - -// menuButton.setLineDash(canvas, linetype, "v", m_st, m_ed, line_st, line_ed); - -// canvas.strokeStyle = color; - -// canvas.stroke(); -// canvas.closePath(); -// canvas.restore(); -// } - -// let borderBottomRender = function(style, color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, canvas){ -// let linetype = style; - -// let m_st = Store.devicePixelRatio * (start_c - 2 + offsetLeft); -// let m_ed = Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop); -// let line_st = Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft); -// let line_ed = Store.devicePixelRatio * (end_r - 2 + 0.5 + offsetTop); - -// menuButton.setLineDash(canvas, linetype, "h", m_st, m_ed, line_st, line_ed); - -// canvas.strokeStyle = color; - -// canvas.stroke(); -// canvas.closePath(); -// canvas.restore(); -// } - -// let borderTopRender = function(style, color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, canvas){ -// let linetype = style; - -// let m_st = Store.devicePixelRatio * (start_c - 2 + offsetLeft); -// let m_ed = Store.devicePixelRatio * (start_r - 1 + 0.5 + offsetTop); -// let line_st = Store.devicePixelRatio * (end_c - 2 + 0.5 + offsetLeft); -// let line_ed = Store.devicePixelRatio * (start_r - 1 + 0.5 + offsetTop); - -// menuButton.setLineDash(canvas, linetype, "h", m_st, m_ed, line_st, line_ed); - -// canvas.strokeStyle = color; - -// canvas.stroke(); -// canvas.closePath(); -// canvas.restore(); -// } - -// let borderInfoCompute = getBorderInfoCompute(); - -// for(let x in borderInfoCompute){ -// let bd_r = x.split("_")[0], bd_c = x.split("_")[1]; - -// if(borderOffset[bd_r + "_" + bd_c]){ -// let start_r = borderOffset[bd_r + "_" + bd_c].start_r; -// let start_c = borderOffset[bd_r + "_" + bd_c].start_c; -// let end_r = borderOffset[bd_r + "_" + bd_c].end_r; -// let end_c = borderOffset[bd_r + "_" + bd_c].end_c; - -// let borderLeft = borderInfoCompute[x].l; -// if(borderLeft != null){ -// borderLeftRender(borderLeft.style, borderLeft.color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, luckysheetTableContent); -// } - -// let borderRight = borderInfoCompute[x].r; -// if(borderRight != null){ -// borderRightRender(borderRight.style, borderRight.color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, luckysheetTableContent); -// } - -// let borderTop = borderInfoCompute[x].t; -// if(borderTop != null){ -// borderTopRender(borderTop.style, borderTop.color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, luckysheetTableContent); -// } - -// let borderBottom = borderInfoCompute[x].b; -// if(borderBottom != null){ -// borderBottomRender(borderBottom.style, borderBottom.color, start_r, start_c, end_r, end_c, offsetLeft, offsetTop, luckysheetTableContent); -// } -// } -// } -// } - -// //渲染表格时有尾列时,清除右边灰色区域,防止表格有值溢出 -// if(dataset_col_ed == Store.visibledatacolumn.length - 1){ -// luckysheetTableContent.clearRect( -// (fill_col_ed - scrollWidth + offsetLeft - 1) * Store.devicePixelRatio, -// (offsetTop - 1) * Store.devicePixelRatio, -// (Store.ch_width - Store.visibledatacolumn[dataset_col_ed]) * Store.devicePixelRatio, -// (fill_row_ed - scrollHeight) * Store.devicePixelRatio -// ); -// } - -// if(ctx != null){ -// ctx.drawImage( -// luckysheetTableElement, -// 0, -// 0, -// drawWidth, -// drawHeight, -// -drawWidth/2 + offsetLeft, -// -drawHeight/2 + offsetTop, -// drawWidth, -// drawHeight -// ); -// } -// } - function luckysheetDrawMain_back(scrollWidth, scrollHeight, drawWidth, drawHeight, offsetLeft, offsetTop, columnOffsetCell, rowOffsetCell, mycanvas) { if (scrollWidth == null) { scrollWidth = $("#luckysheet-cell-main").scrollLeft(); diff --git a/src/locale/en.js b/src/locale/en.js index 554ef755b..d699b4478 100644 --- a/src/locale/en.js +++ b/src/locale/en.js @@ -688,7 +688,7 @@ export default { showRules: 'Show its formatting rules', highlightCellRules: 'Highlight cell rules', itemSelectionRules: 'Item selection rules', - manageRules: 'Conditional Formatting Rule Manager', + conditionformatManageRules: 'Conditional Formatting Rule Manager', format: 'Format', setFormat: 'Set format', setAs: 'Set as', diff --git a/src/locale/zh.js b/src/locale/zh.js index 7e3e98df0..75169a92e 100644 --- a/src/locale/zh.js +++ b/src/locale/zh.js @@ -712,7 +712,7 @@ export default { showRules: '显示其格式规则', highlightCellRules: '突出显示单元格规则', itemSelectionRules: '项目选取规则', - manageRules: '条件格式规则管理器', + conditionformatManageRules: '条件格式规则管理器', format: '格式', setFormat: '设置格式', setAs: '设置为',