|  | @@ -109,6 +109,8 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |          if (cell.backColor() !== 'White') {
 | 
	
		
			
				|  |  |              //0. 设置UI
 | 
	
		
			
				|  |  |              $(`#visElementFonts`)[0].removeAttribute("disabled");
 | 
	
		
			
				|  |  | +            $("#elementBordersVis")[0].removeAttribute("disabled");
 | 
	
		
			
				|  |  | +            $("#elementControlsVis")[0].removeAttribute("disabled");
 | 
	
		
			
				|  |  |              $(`#visRdIsText`)[0].removeAttribute("disabled");
 | 
	
		
			
				|  |  |              $(`#visRdIsField`)[0].removeAttribute("disabled");
 | 
	
		
			
				|  |  |              $(`#eleIsAutoHeightVis`)[0].removeAttribute("disabled");
 | 
	
	
		
			
				|  | @@ -117,7 +119,15 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |              //1. font
 | 
	
		
			
				|  |  |              let fontAttr = me.bandMappingObj.fontAttr[row + "_" + col + "_font"];
 | 
	
		
			
				|  |  |              if (fontAttr) {
 | 
	
		
			
				|  |  | -                me.private_setup_font(fontAttr);
 | 
	
		
			
				|  |  | +                me._setupFont(fontAttr);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            let borderAttr = me.bandMappingObj.borderAttr[row + "_" + col + "_border"];
 | 
	
		
			
				|  |  | +            if (borderAttr) {
 | 
	
		
			
				|  |  | +                me._setupBorder(borderAttr);
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            let ctrlAttr = me.bandMappingObj.ctrlAttr[row + "_" + col + "_ctrl"];
 | 
	
		
			
				|  |  | +            if (ctrlAttr) {
 | 
	
		
			
				|  |  | +                me._setupCtrl(ctrlAttr);
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              //2. alignment
 | 
	
		
			
				|  |  |              switch (cell.hAlign()) {
 | 
	
	
		
			
				|  | @@ -199,6 +209,8 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              $("#visElementFonts")[0].disabled = "disabled" ;
 | 
	
		
			
				|  |  | +            $("#elementBordersVis")[0].disabled = "disabled" ;
 | 
	
		
			
				|  |  | +            $("#elementControlsVis")[0].disabled = "disabled" ;
 | 
	
		
			
				|  |  |              $("#visRdIsText")[0].disabled = "disabled" ;
 | 
	
		
			
				|  |  |              $("#visRdIsField")[0].disabled = "disabled" ;
 | 
	
		
			
				|  |  |              $("#eleIsAutoHeightVis")[0].disabled = "disabled" ;
 | 
	
	
		
			
				|  | @@ -500,7 +512,7 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |                  fontAttr[JV.FONT_PROPS[JV.FONT_PROP_IDX_ANGLE]] = 0;   //angle
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              me.bandMappingObj.fontAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_font"] = fontAttr;
 | 
	
		
			
				|  |  | -            me.private_setup_font(fontAttr);
 | 
	
		
			
				|  |  | +            me._setupFont(fontAttr);
 | 
	
		
			
				|  |  |              if (typeof fontAttr === 'string') {
 | 
	
		
			
				|  |  |                  let idx = rpt_tpl_cfg_helper.reportCfg.fontArr.indexOf(fontAttr);
 | 
	
		
			
				|  |  |                  fontAttr = rpt_tpl_cfg_helper.reportCfg.fonts[idx];
 | 
	
	
		
			
				|  | @@ -575,6 +587,119 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |              sheet.resumePaint();
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    _setupCtrl: function (ctrlAttr) {
 | 
	
		
			
				|  |  | +        let idx = rpt_tpl_cfg_helper.reportCfg.controlArr.indexOf(ctrlAttr);
 | 
	
		
			
				|  |  | +        let ctrl = rpt_tpl_cfg_helper.reportCfg.ctrls[idx];
 | 
	
		
			
				|  |  | +        $("#elementControlsVis")[0].selectedIndex = idx;
 | 
	
		
			
				|  |  | +        $("#elementAlignmentHorizonVis").get(0).selectedIndex = JV.OUTPUT_ALIGN.H.indexOf(ctrl[JV.CONTROL_PROPS[2]]);
 | 
	
		
			
				|  |  | +        $("#elementAlignmentVerticalVis").get(0).selectedIndex = JV.OUTPUT_ALIGN.V.indexOf(ctrl[JV.CONTROL_PROPS[3]]);
 | 
	
		
			
				|  |  | +        $("#eleShrinkVis").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK]]);
 | 
	
		
			
				|  |  | +        $("#eleShowZeroVis").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHOW_ZERO]]);
 | 
	
		
			
				|  |  | +        $("#eleAutoWrapVis").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_WRAP]]);
 | 
	
		
			
				|  |  | +        $("#eleIsShrinkFirstVis").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_SHRINK_FIRST]]);
 | 
	
		
			
				|  |  | +        $("#eleCloseOutputVis").get(0).checked = stringUtil.convertStrToBoolean(ctrl[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_CLOSE_OUTPUT]]);
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    _setupCellCtrlEx: function (ctrlObj) {
 | 
	
		
			
				|  |  | +        // 原:setupCellAlignment
 | 
	
		
			
				|  |  | +        let me = visualJumbo, sheet = me.tplWorkBook.getActiveSheet();
 | 
	
		
			
				|  |  | +        let selectedRanges = sheet.getSelections();
 | 
	
		
			
				|  |  | +        if (selectedRanges.length > 0) {
 | 
	
		
			
				|  |  | +            // let cell = sheet.getCell(selectedRanges[0].row, selectedRanges[0].col);
 | 
	
		
			
				|  |  | +            sheet.suspendPaint();
 | 
	
		
			
				|  |  | +            for (let iRow = 0; iRow < selectedRanges[0].rowCount; iRow++) {
 | 
	
		
			
				|  |  | +                for (let iCol = 0; iCol < selectedRanges[0].colCount; iCol++) {
 | 
	
		
			
				|  |  | +                    let cell = sheet.getCell(selectedRanges[0].row + iRow, selectedRanges[0].col + iCol);
 | 
	
		
			
				|  |  | +                    //1. horizon alignment
 | 
	
		
			
				|  |  | +                    if (ctrlObj[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]] === 'center') {
 | 
	
		
			
				|  |  | +                        cell.hAlign(GC.Spread.Sheets.HorizontalAlign.center);
 | 
	
		
			
				|  |  | +                    } else if (ctrlObj[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_HORIZON]] === 'left') {
 | 
	
		
			
				|  |  | +                        cell.hAlign(GC.Spread.Sheets.HorizontalAlign.left);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        cell.hAlign(GC.Spread.Sheets.HorizontalAlign.right);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                    //2. vertical alignment
 | 
	
		
			
				|  |  | +                    if (ctrlObj[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]] === 'center') {
 | 
	
		
			
				|  |  | +                        cell.vAlign(GC.Spread.Sheets.VerticalAlign.center);
 | 
	
		
			
				|  |  | +                    } else if (ctrlObj[JV.CONTROL_PROPS[JV.CONTROL_PROP_IDX_VERTICAL]] === 'bottom') {
 | 
	
		
			
				|  |  | +                        cell.vAlign(GC.Spread.Sheets.VerticalAlign.bottom);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        cell.vAlign(GC.Spread.Sheets.VerticalAlign.top);
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            sheet.resumePaint();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    _setupBorder: function (borderAttr) {
 | 
	
		
			
				|  |  | +        let idx = rpt_tpl_cfg_helper.reportCfg.borderArr.indexOf(borderAttr);
 | 
	
		
			
				|  |  | +        let border = rpt_tpl_cfg_helper.reportCfg.styles[idx];
 | 
	
		
			
				|  |  | +        $("#elementBordersVis")[0].selectedIndex = idx;
 | 
	
		
			
				|  |  | +        for (let borderLine of border[JV.PROP_BORDER_STYLE]) {
 | 
	
		
			
				|  |  | +            switch (borderLine[JV.PROP_POSITION]) {
 | 
	
		
			
				|  |  | +                case JV.PROP_LEFT:
 | 
	
		
			
				|  |  | +                    $("#eleBorderLeftVis").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                case JV.PROP_RIGHT:
 | 
	
		
			
				|  |  | +                    $("#eleBorderRightVis").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                case JV.PROP_TOP:
 | 
	
		
			
				|  |  | +                    $("#eleBorderTopVis").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                case JV.PROP_BOTTOM:
 | 
	
		
			
				|  |  | +                    $("#eleBorderBottomVis").get(0).value = borderLine[JV.PROP_LINE_WEIGHT];
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +                default:
 | 
	
		
			
				|  |  | +                    break;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    _setupCellBorderEx: function (borderObj) {
 | 
	
		
			
				|  |  | +        let me = visualJumbo, sheet = me.tplWorkBook.getActiveSheet();
 | 
	
		
			
				|  |  | +        let selectedRanges = sheet.getSelections();
 | 
	
		
			
				|  |  | +        if (selectedRanges.length > 0) {
 | 
	
		
			
				|  |  | +            sheet.suspendPaint();
 | 
	
		
			
				|  |  | +            let borderLine = new GC.Spread.Sheets.LineBorder;
 | 
	
		
			
				|  |  | +            let borderEmpty = new GC.Spread.Sheets.LineBorder;
 | 
	
		
			
				|  |  | +            let borderThick = new GC.Spread.Sheets.LineBorder;
 | 
	
		
			
				|  |  | +            borderLine.color = "Black";
 | 
	
		
			
				|  |  | +            borderEmpty.color = "Black";
 | 
	
		
			
				|  |  | +            borderThick.color = "Black";
 | 
	
		
			
				|  |  | +            borderEmpty.style = GC.Spread.Sheets.LineStyle.empty;
 | 
	
		
			
				|  |  | +            borderLine.style = GC.Spread.Sheets.LineStyle.thin;
 | 
	
		
			
				|  |  | +            borderThick.style = GC.Spread.Sheets.LineStyle.thick;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            let cellRange = new GC.Spread.Sheets.CellRange(sheet, selectedRanges[0].row, selectedRanges[0].col, selectedRanges[0].rowCount, selectedRanges[0].colCount);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            const _setCB = function (lineThick, borderObj) {
 | 
	
		
			
				|  |  | +                if (lineThick === 0) {
 | 
	
		
			
				|  |  | +                    cellRange.setBorder(borderEmpty, borderObj);
 | 
	
		
			
				|  |  | +                } else if (lineThick === 1) {
 | 
	
		
			
				|  |  | +                    cellRange.setBorder(borderLine, borderObj);
 | 
	
		
			
				|  |  | +                } else {
 | 
	
		
			
				|  |  | +                    cellRange.setBorder(borderThick, borderObj);
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            };
 | 
	
		
			
				|  |  | +            for (let borderLine of borderObj[JV.PROP_BORDER_STYLE]) {
 | 
	
		
			
				|  |  | +                switch (borderLine[JV.PROP_POSITION]) {
 | 
	
		
			
				|  |  | +                    case JV.PROP_LEFT:
 | 
	
		
			
				|  |  | +                        _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {left: true});
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    case JV.PROP_RIGHT:
 | 
	
		
			
				|  |  | +                        _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {right: true});
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    case JV.PROP_TOP:
 | 
	
		
			
				|  |  | +                        _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {top: true});
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    case JV.PROP_BOTTOM:
 | 
	
		
			
				|  |  | +                        _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {bottom: true});
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                    default:
 | 
	
		
			
				|  |  | +                        break;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            sheet.resumePaint();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      setupCellBorder: function () {
 | 
	
		
			
				|  |  |          let me = visualJumbo, sheet = me.tplWorkBook.getActiveSheet();
 | 
	
		
			
				|  |  |          let selectedRanges = sheet.getSelections();
 | 
	
	
		
			
				|  | @@ -617,7 +742,7 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          cell.font(fontStr);
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | -    private_setup_font: function(fontAttr) {
 | 
	
		
			
				|  |  | +    _setupFont: function(fontAttr) {
 | 
	
		
			
				|  |  |          if (typeof fontAttr === "string" && fontAttr !== "自定义") {
 | 
	
		
			
				|  |  |              $("#visElementFontNames")[0].disabled = "disabled" ;
 | 
	
		
			
				|  |  |              $("#visEleFontSize")[0].disabled = "disabled" ;
 | 
	
	
		
			
				|  | @@ -702,6 +827,37 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |              dom.className = "btn btn-sm btn-outline-secondary";
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  | +    changeBorderEx: function (dom) {
 | 
	
		
			
				|  |  | +        let me = visualJumbo, borderAttr = dom.value,
 | 
	
		
			
				|  |  | +            sheet = me.tplWorkBook.getActiveSheet();
 | 
	
		
			
				|  |  | +        let selectedRanges = sheet.getSelections();
 | 
	
		
			
				|  |  | +        if (selectedRanges.length > 0) {
 | 
	
		
			
				|  |  | +            // let cell = sheet.getCell(selectedRanges[0].row, selectedRanges[0].col);
 | 
	
		
			
				|  |  | +            me.bandMappingObj.borderAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_border"] = borderAttr;
 | 
	
		
			
				|  |  | +            me._setupBorder(borderAttr);
 | 
	
		
			
				|  |  | +            // 然后要设置相关Cell的边框
 | 
	
		
			
				|  |  | +            if (typeof borderAttr === 'string') {
 | 
	
		
			
				|  |  | +                let idx = rpt_tpl_cfg_helper.reportCfg.borderArr.indexOf(borderAttr);
 | 
	
		
			
				|  |  | +                borderAttr = rpt_tpl_cfg_helper.reportCfg.styles[idx];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            me._setupCellBorderEx(borderAttr);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    changeControlEx: function (dom) {
 | 
	
		
			
				|  |  | +        let me = visualJumbo, ctrlAttr = dom.value,
 | 
	
		
			
				|  |  | +            sheet = me.tplWorkBook.getActiveSheet();
 | 
	
		
			
				|  |  | +        let selectedRanges = sheet.getSelections();
 | 
	
		
			
				|  |  | +        if (selectedRanges.length > 0) {
 | 
	
		
			
				|  |  | +            me.bandMappingObj.ctrlAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_ctrl"] = ctrlAttr;
 | 
	
		
			
				|  |  | +            me._setupCtrl(ctrlAttr);
 | 
	
		
			
				|  |  | +            // 然后要设置相关Cell的上下左右控制(就是原setupCellAlignment)
 | 
	
		
			
				|  |  | +            if (typeof ctrlAttr === 'string') {
 | 
	
		
			
				|  |  | +                let idx = rpt_tpl_cfg_helper.reportCfg.controlArr.indexOf(ctrlAttr);
 | 
	
		
			
				|  |  | +                ctrlAttr = rpt_tpl_cfg_helper.reportCfg.ctrls[idx];
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            me._setupCellCtrlEx(ctrlAttr);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  |      changeHAlign: function (dom) {
 | 
	
		
			
				|  |  |          let me = this;
 | 
	
		
			
				|  |  |          if (dom.className === "btn btn-sm btn-outline-secondary") {
 | 
	
	
		
			
				|  | @@ -1284,62 +1440,16 @@ let visualJumbo = {
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      private_getBorderByCellProperties: function (cell) {
 | 
	
		
			
				|  |  | -        let rst = 'Default_None';
 | 
	
		
			
				|  |  | -        let border = cell.borderLeft();
 | 
	
		
			
				|  |  | -        if (border && border.style === GC.Spread.Sheets.LineStyle.thin) {
 | 
	
		
			
				|  |  | -            rst = 'Default_Normal'
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            border = cell.borderBottom();
 | 
	
		
			
				|  |  | -            if (border && border.style === GC.Spread.Sheets.LineStyle.thin) {
 | 
	
		
			
				|  |  | -                rst = 'Label_Underline'
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +        let me = this, rst = 'Default_None';
 | 
	
		
			
				|  |  | +        if (me.bandMappingObj.borderAttr[cell.row + "_" + cell.col + "_border"]) {
 | 
	
		
			
				|  |  | +            rst = me.bandMappingObj.borderAttr[cell.row + "_" + cell.col + "_border"];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      },
 | 
	
		
			
				|  |  |      private_getCtrlByCellProperties: function (cell) {
 | 
	
		
			
				|  |  | -        let rst = 'Default';
 | 
	
		
			
				|  |  | -        let border = cell.borderLeft();
 | 
	
		
			
				|  |  | -        if (cell.vAlign() === GC.Spread.Sheets.VerticalAlign.center) {
 | 
	
		
			
				|  |  | -            if (border && border.style === GC.Spread.Sheets.LineStyle.thin) {
 | 
	
		
			
				|  |  | -                switch (cell.hAlign()) {
 | 
	
		
			
				|  |  | -                    case GC.Spread.Sheets.HorizontalAlign.center:
 | 
	
		
			
				|  |  | -                        rst = `Column`;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case GC.Spread.Sheets.HorizontalAlign.right:
 | 
	
		
			
				|  |  | -                        rst = `Column_Right`;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case GC.Spread.Sheets.HorizontalAlign.left:
 | 
	
		
			
				|  |  | -                    default:
 | 
	
		
			
				|  |  | -                        rst = `Column_Left`;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            } else {
 | 
	
		
			
				|  |  | -                switch (cell.hAlign()) {
 | 
	
		
			
				|  |  | -                    case GC.Spread.Sheets.HorizontalAlign.center:
 | 
	
		
			
				|  |  | -                        rst = `Title`;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case GC.Spread.Sheets.HorizontalAlign.right:
 | 
	
		
			
				|  |  | -                        rst = `Header_Right`;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                    case GC.Spread.Sheets.HorizontalAlign.left:
 | 
	
		
			
				|  |  | -                    default:
 | 
	
		
			
				|  |  | -                        rst = `Header`;
 | 
	
		
			
				|  |  | -                        break;
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        } else {
 | 
	
		
			
				|  |  | -            switch (cell.hAlign()) {
 | 
	
		
			
				|  |  | -                case GC.Spread.Sheets.HorizontalAlign.center:
 | 
	
		
			
				|  |  | -                    rst = `Content_Center`;
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case GC.Spread.Sheets.HorizontalAlign.right:
 | 
	
		
			
				|  |  | -                    rst = `Content_Right`;
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -                case GC.Spread.Sheets.HorizontalAlign.left:
 | 
	
		
			
				|  |  | -                default:
 | 
	
		
			
				|  |  | -                    rst = `Content_Left`;
 | 
	
		
			
				|  |  | -                    break;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +        let me = this, rst = 'Default';
 | 
	
		
			
				|  |  | +        if (me.bandMappingObj.ctrlAttr[cell.row + "_" + cell.col + "_ctrl"]) {
 | 
	
		
			
				|  |  | +            rst = me.bandMappingObj.ctrlAttr[cell.row + "_" + cell.col + "_ctrl"];
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          return rst;
 | 
	
		
			
				|  |  |      }
 |