找回密码
 立即注册

QQ登录

只需一步,快速开始

tony1109669192
金牌服务用户   /  发表于:2020-11-5 18:18  /   查看:3333  /  回复:7
本帖最后由 tony1109669192 于 2020-11-12 09:20 编辑

image.png357080077.png image.png646907653.png

7 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-6 10:26:48
沙发
原因是V13版本中对表格中做了增强处理,这导致如果表格绑定内容超出了sheet本身rowCount的范围,就会出现这样的错误。
解决办法有两种:
1.在V13版本中,绑定setDataSource之前先获取一下datasource的长度,然后设置sheet的rowCount留有足够的行。然后再setDataSource
2.在今天发布的V14版本中,可以通过设置table.expandBoundRows(true);然后再setDataSource的方式来解决。
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2020-11-6 10:56:15
板凳
V13版本设置sheet的rowCount有示例吗
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-6 11:34:43
地板
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2020-11-10 09:53:45
5#
image.png787002563.png image.png414513854.png
问题1、我按照你的方法设置了sheet.setRowCount(count, GC.Spread.Sheets.SheetArea.viewport);
count = 原来行数+数据源行数,但是新增的行数高度跟表格的高度不一致,有没有办法拷贝表格的第一行的样式和高度,后面表格保持样式不变
问题2、表格后面设置的绑定数据源不能加载,例如民工使用数量(个)这个我设置的数据源,但并没有加载出来,前面的数据源是加载出来的

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-10 10:11:43
6#
用V14把,升级后就是一个设置。
您说的那些在V13都需要单独处理
回复 使用道具 举报
tony1109669192
金牌服务用户   /  发表于:2020-11-10 11:21:33
7#
有这个处理的示例吗?14版license还未申请过来
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-10 11:44:51
8#
附件为示例demo,您可以参考下:
核心代码:
  1. function beforeSetDataSource(sheet, source) {
  2.             sheet.suspendPaint();
  3.             for (let i = 0; i < sheet.tables.all().length; i++) {
  4.                 var table = sheet.tables.all()[i];
  5.                 var bindingPath = table.bindingPath();
  6.                 for (let i in source.xf) {
  7.                     if (i == bindingPath) {
  8.                         var length = source.xf[i].length;
  9.                         var range = table.range()
  10.                         if (length > range.rowCount) {
  11.                             var rindex = range.row + range.rowCount - 1;
  12.                             var rcount = length - range.rowCount + 1;
  13.                             sheet.addRows(rindex, rcount)
  14.                             break
  15.                         }
  16.                         if (length < range.rowCount) {
  17.                             var rindex = range.row + range.rowCount - 1;
  18.                             var rcount = range.rowCount - length - 1;
  19.                             sheet.deleteRows(rindex - rcount, rcount)
  20.                             break
  21.                         }
  22.                     }
  23.                 }
  24.             }
  25.             sheet.resumePaint()
  26.         }
复制代码


自动拓展受限demo.zip

3.53 MB, 下载次数: 30

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