找回密码
 立即注册

QQ登录

只需一步,快速开始

grb

初级会员

17

主题

53

帖子

461

积分

初级会员

积分
461

微信认证勋章

[已处理] Invalid range

grb
初级会员   /  发表于:2018-12-24 20:35  /   查看:2864  /  回复:1
问题代码见附件,先点击“重新赋值数据1”,再点击“重新赋值数据2”,报错Invalid range,请问问题在哪?

index.html

3.98 KB, 下载次数: 64

demo

1 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2018-12-25 10:12:52
沙发
您好,您的问题解决了。

实际上问题出在addSpan时,对range的设置错误导致的,

只需要在本次绑定数据前调用一下sheet的reset方法即可。

代码如下:

  1.     function initSpread(spread, data) {
  2.       spread.suspendPaint();

  3.       const sheet = spread.getActiveSheet();
  4.       // 在此处添加一个reset调用。
  5.       sheet.reset();
  6.       const colInfos = [
  7.         {
  8.           name: 'name',
  9.           displayName: '名称',
  10.           size: 100,
  11.         },
  12.         {
  13.           name: 'name',
  14.           displayName: '名称',
  15.           size: 100,
  16.         },
  17.       ];
  18.       sheet.setDataSource(data);
  19.       // 合并
  20.       const merges = addSpanShow(data, ['name'], [0]);
  21.       console.log(data, merges);
  22.       merges.forEach((item) => {
  23.         const { row, col, rowspan, colspan } = item;
  24.         sheet.addSpan(row, col, rowspan, colspan); // 行坐标,列坐标,行数, 列数
  25.         sheet.getCell(row, col).vAlign(GC.Spread.Sheets.VerticalAlign.center); // 垂直居中
  26.       });
复制代码

评分

参与人数 1满意度 +5 收起 理由
grb + 5 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部