找回密码
 立即注册

QQ登录

只需一步,快速开始

z3393898

初级会员

14

主题

38

帖子

446

积分

初级会员

积分
446
z3393898
初级会员   /  发表于:2017-4-7 15:59  /   查看:3493  /  回复:3
产品版本:spreadjsv9
浏览器版本: ie11
问题描述:选择了表头行进行字体设置,调用js方法设置字体位置(居中等)或者字体大小时,部分单元格的边框消失了,不知道代码哪里出了问题
关键代码:
[size=14.6667px]var spread = GcSpread.Sheets.findControl(document.getElementById('bydy'));
[size=14.6667px]    var sheet = spread.getActiveSheet();
[size=14.6667px]    var sel = sheet.getSelections();//获取选中区域
[size=14.6667px]    sheet.isPaintSuspended(true);//激活绘制事件
[size=14.6667px]    if (sel.length > 0) {
[size=14.6667px]        sel = getActualCellRange(sel[sel.length - 1], sheet.getRowCount(), sheet.getColumnCount());  //获取当前选中区域
[size=14.6667px]        for (var i = 0; i < sel.rowCount; i++) {//遍历该区域中所有单元格,并设置该样式
[size=14.6667px]            for (var j = 0; j < sel.colCount; j++) {
[size=14.6667px]                var cellStyle = sheet.getStyle(i+sel.row, j+sel.col,GcSpread.Sheets.SheetArea.viewport, true);
[size=14.6667px]                //如果是空的,新定义一个
[size=14.6667px]                if(!cellStyle||!cellStyle.hasOwnProperty("font")){
[size=14.6667px]                    var cellStyle = new GcSpread.Sheets.Style();
[size=14.6667px]                    cellStyle.font = " 12px 宋体 ";
[size=14.6667px]                    cellStyle.wordWrap = false;
[size=14.6667px]                    cellStyle.hAlign = GcSpread.Sheets.HorizontalAlign.left;
[size=14.6667px]                    cellStyle.vAlign = GcSpread.Sheets.VerticalAlign.center;
[size=14.6667px]                }
[size=14.6667px]                cellStyle.hAlign = GcSpread.Sheets.HorizontalAlign.center;
[size=14.6667px]                sheet.setStyle(i+sel.row, j+sel.col, cellStyle);//设置单元格样式
[size=14.6667px]            }
[size=14.6667px]        }
[size=14.6667px]    }
[size=14.6667px]选中区域
blob685035705.png
设置后
blob237257689.png

3 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-7 17:47:15
沙发
看代码的一个可能性时
   if(!cellStyle||!cellStyle.hasOwnProperty("font")){
这个单元格又cellStyle 属性,但是 cellStyle 没有font。这样就就new一个style吧以前的覆盖了。
您可以删了||!cellStyle.hasOwnProperty("font")) 试试。
如果还有问题,把您的json发下
回复 使用道具 举报
z3393898
初级会员   /  发表于:2017-4-10 09:21:14
板凳
dexteryao 发表于 2017-4-7 17:47
看代码的一个可能性时
   if(!cellStyle||!cellStyle.hasOwnProperty("font")){
这个单元格又cellStyle  ...

按照您说的方法解决了,厉害!!把!cellStyle.hasOwnProperty("font")放到else if中,如果没有字体属性,就获取单元格的style设置一下字体就好了,而不是new一个样式
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-4-10 11:44:48
地板
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部