diff --git a/src/global/getRowlen.js b/src/global/getRowlen.js index 0e64c1056..68c234ae1 100644 --- a/src/global/getRowlen.js +++ b/src/global/getRowlen.js @@ -196,8 +196,8 @@ function getMeasureText(value, ctx, fontset){ } let measureText = ctx.measureText(value), cache = {}; - var regu = "^[ ]+$"; - var re = new RegExp(regu); + // var regu = "^[ ]+$"; + // var re = new RegExp(regu); // if(measureText.actualBoundingBoxRight==null || re.test(value)){ // cache.width = measureText.width; // } @@ -235,6 +235,37 @@ function getMeasureText(value, ctx, fontset){ //console.log(value, oneLineTextHeight, measureText.actualBoundingBoxDescent+measureText.actualBoundingBoxAscent,ctx.font); } + + if(ctx.textBaseline == 'alphabetic'){ + let descText = "gjpqy", matchText="abcdABCD"; + let descTextMeasure = Store.measureTextCache[descText + "_" + ctx.font]; + if(fontset!=null){ + descTextMeasure = Store.measureTextCache[descText + "_" + fontset]; + } + + let matchTextMeasure = Store.measureTextCache[matchText + "_" + ctx.font]; + if(fontset!=null){ + matchTextMeasure = Store.measureTextCache[matchText + "_" + fontset]; + } + + if(descTextMeasure == null){ + descTextMeasure = ctx.measureText(descText); + } + + if(matchTextMeasure == null){ + matchTextMeasure = ctx.measureText(matchText); + } + + if(cache.actualBoundingBoxDescent<=matchTextMeasure.actualBoundingBoxDescent){ + cache.actualBoundingBoxDescent = descTextMeasure.actualBoundingBoxDescent; + if(cache.actualBoundingBoxDescent==null){ + cache.actualBoundingBoxDescent = 0; + } + } + + + } + cache.width *= Store.zoomRatio; cache.actualBoundingBoxDescent *= Store.zoomRatio; cache.actualBoundingBoxAscent *= Store.zoomRatio; diff --git a/src/index.html b/src/index.html index 40d0a5f08..b75dec27c 100644 --- a/src/index.html +++ b/src/index.html @@ -97,6 +97,15 @@ }, data: [sheetCell,sheetFormula,sheetConditionFormat,sheetSparkline,sheetTable,sheetComment,sheetPivotTableData,sheetPivotTable,sheetChart,sheetPicture,sheetDataVerification] + /*[{ + "index": "0", + "zoomRatio": 1, + "order": "0", + "column": 3, + "row": 4, + "status": 1, + celldata:[{"r":0,"c":0,"v":{"bg":null,"bl":0,"it":0,"ff":0,"fs":11,"fc":"rgb(51, 51, 51)","ht":1,"vt":1,"v":1,"ct":{"fa":"General","t":"n"},"m":"1"}},{"r":0,"c":1,"v":{"bg":null,"bl":0,"it":0,"ff":0,"fs":11,"fc":"rgb(51, 51, 51)","ht":1,"vt":1,"v":2,"ct":{"fa":"General","t":"n"},"m":"2"}}] + }]*/ /*[{"name":"Sheet1","config":{"columnlen":{"0":241},"rowlen":{"0":81}},"index":"1","status":"1","order":"0","luckysheet_select_save":[{"row":[0,0],"column":[4,4],"sheetIndex":1}],"zoomRatio":1,"showGridLines":"1","defaultColWidth":72,"defaultRowHeight":18,"celldata":[ {"r":0,"c":0, "v":{