请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

洪水永不结冰

论坛元老

23

主题

82

帖子

2万

积分

论坛元老

积分
23029

活字格认证

洪水永不结冰
论坛元老   /  发表于:2016-1-8 16:23  /   查看:7284  /  回复:5
版主您好:
      我在使用行自动换行时,出现了行的高度不能够自适应。代码如下:
        //自动换行
        sheet.getRow(2).wordWrap(true);
效果见截图

错误图片

错误图片

5 个回复

倒序浏览
CCKan
银牌会员   /  发表于:2016-1-8 17:58:00
沙发
SpreadJS 是一个控件,一般情况下不会自己修改行高列宽等数据。
你可以通过以下代码做:
            sheet.bind(GcSpread.Sheets.Events.EditEnded, function (sender, args) {
                sheet.autoFitRow(args.row);
            });
回复 使用道具 举报
洪水永不结冰
论坛元老   /  发表于:2016-1-8 22:33:00
板凳
回复 2楼CCKan的帖子

请问这段代码直接放在修改位置之后还是哪儿?我直接放在initSpread测试无效
回复 使用道具 举报
洪水永不结冰
论坛元老   /  发表于:2016-1-8 22:41:00
地板
回复 2楼CCKan的帖子

function initSpread(spread) {
        var spreadNS = GcSpread.Sheets;

        var sheet = spread.getSheet(0);
        sheet.isPaintSuspended(true);
        sheet.setName("项目执行过程管理表");
        sheet.setRowCount(25);
        sheet.setColumnCount(11);
        sheet.addSpan(0, 0, 1, 11);
        sheet.setValue(0, 0, "项目基础信息");
        sheet.getCells(0, 0, 1, 11).hAlign(spreadNS.HorizontalAlign.center);
        sheet.getRow(1).hAlign(spreadNS.HorizontalAlign.center);
        sheet.getRow(1).vAlign(spreadNS.VerticalAlign.center)
        sheet.setValue(1, 0, "项目名称");
        sheet.setValue(1, 1, "项目编号");
        sheet.setValue(1, 2, "项目经理");
        sheet.setValue(1, 3, "项目联系人");
        sheet.setValue(1, 4, "项目联系方式");
        sheet.setValue(1, 5, "项目项目类型");
        sheet.setValue(1, 6, "项目状态");
        sheet.setValue(1, 7, "项目开始时间");
        sheet.setValue(1, 8, "项目结束时间");
        sheet.setValue(1, 9, "项目质保期");
        sheet.setValue(1, 10, "备注问题/下一步重点工作");
        //设置列的宽度
        sheet.setColumnWidth(0, 194);
        sheet.setColumnWidth(1, 100);
        sheet.setColumnWidth(2, 78);
        sheet.setColumnWidth(3, 104);
        sheet.setColumnWidth(4, 109);
        sheet.setColumnWidth(5, 97);
        sheet.setColumnWidth(6, 177);
        sheet.setColumnWidth(7, 116);
        sheet.setColumnWidth(8, 98);
        sheet.setColumnWidth(9, 100);
        sheet.setColumnWidth(10, 205);
        //赋值
      
        //居中
        sheet.getRow(2).hAlign(spreadNS.VerticalAlign.center);
        sheet.getRow(2).vAlign(spreadNS.VerticalAlign.center)
        sheet.setValue(2, 0, "大庆油田伊拉克鲁迈拉项目部营地带宽租赁项目2015年");
        sheet.getCell(2, 0).wordWrap(true);
        sheet.setValue(2, 1, "2014444ZL004");
        sheet.setValue(2, 2, "石头        ");
        sheet.setValue(2, 3, "石头");
        sheet.setValue(2, 4, "010-82766699");
        sheet.setValue(2, 5, "租赁");
        sheet.setValue(2, 6, "C.已签合同,项目正常实施中(含正在验收)        ");
        sheet.setValue(2, 7, "2015年2月1日");
        sheet.setValue(2, 8, "2016年1月31日");
        sheet.setValue(2, 9, "无");
        sheet.setValue(2, 10, "跟进并沟通主站迁址");
        //自动换行
        sheet.getRow(2).wordWrap(true);
        //自动高度适应
        sheet.bind(GcSpread.Sheets.Events.EditEnded, function (sender, args) {
            sheet.autoFitRow(args.row);
        });
        //设置边框线
        sheet.setBorder(new spreadNS.Range(0, 0, sheet.getRowCount(), sheet.getColumnCount()), new spreadNS.LineBorder("Black", spreadNS.LineStyle.thin), { all: true });
        //设置选择一行
        sheet.selectionUnit(1);
        //设置是否可编辑
      
        //绘制grid
        sheet.isPaintSuspended(false);
    };
回复 使用道具 举报
洪水永不结冰
论坛元老   /  发表于:2016-1-9 12:09:00
5#
回复 2楼CCKan的帖子

版主你好,我测试了你的代码,没有起作用。可能是我放的代码位置不对,请指教。我也贴出了我的初始化代码。希望版主能够协助解决,非常感谢您!
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-1-11 11:30:00
6#
你好!
sheet.bind(GcSpread.Sheets.Events.EditEnded, function (sender, args) {
            sheet.autoFitRow(args.row);
        });
这三行代码的作用是说,用户在你的第三行输入多行文本时,第三行的高度会自动自适应。
而你自己用代码设置的值只需要通过代码对需要自动调整高度的行执行一次 autoFitRow 就好了:
            //自动换行
            sheet.getRow(2).wordWrap(true);
            sheet.autoFitRow(2);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部