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

QQ登录

只需一步,快速开始

dybxin

注册会员

18

主题

44

帖子

160

积分

注册会员

积分
160
dybxin
注册会员   /  发表于:2024-1-30 16:22  /   查看:315  /  回复:6
4金币
本帖最后由 Richard.Huang 于 2024-1-31 11:23 编辑

产品:SpreadJS
版本:V16.2.6

image.png283089904.png
接口返回的数据格式如下json:

将返回的数据从第六行开始铺, 根据接口返回的数据量, 在第7行动态插入行,每行复制第六行的样式计算公式。
目前设置数据的操作是,先更具数据量增加行, 然后copy模板行上的公式 数据 等, 然后 在设置数据:, 但是 目前根据行号列号设置数据,这样每次模板表更新都会出现数据设置错位置的问题。 所以我在第3行新加了 一行 作为唯一的列号标识, 如何快速的将数据对应的绑定上?并且从指定的行开始铺数?
  1. // steps1: 新增行
  2. sheet.addRows(6, datas.length - 1);
  3. // steps2: copy
  4. datas.forEach((item, index) => {
  5.   if (index != 0) {
  6.     // 剩下的数据就直接 搞到 新增的行上
  7.     sheet.copyTo(
  8.       5,
  9.       0,
  10.       5 + index,
  11.       0,
  12.       1,
  13.       sheet.getColumnCount(),
  14.       GC.Spread.Sheets.CopyToOptions.all
  15.     );

  16.     // step3: 目前设置值的方式
  17.     sheet.setValue(5 + index, 0, item.id);
  18.     sheet.setValue(5 + index, 1, index + 1);
  19.     sheet.setValue(5 + index, 2, item.col1);
  20.   } else {
  21.     // 将第一条数据设置到模板行对应的格子上
  22.     sheet.setValue(5, 0, item.id);
  23.     sheet.setValue(5, 1, index + 1);
  24.     sheet.setValue(5, 2, item.col2);
  25.   }
  26. });
复制代码
  1. [
  2.   {
  3.     id: 1,
  4.     col1: "",
  5.     col2: "",
  6.     col3: "",
  7.     col4: "",
  8.     col5: "",
  9.     col6: "",
  10.   },
  11.   {
  12.     id: 1,
  13.     col1: "",
  14.     col2: "",
  15.     col3: "",
  16.     col4: "",
  17.     col5: "",
  18.     col6: "",
  19.   },
  20. ];
复制代码


6 个回复

倒序浏览
nobt
论坛元老   /  发表于:2024-1-30 16:33:15
沙发
1. 用数据源的方式填充
2. 复制别用all,用公式和样式,all包含了数据和值

评分

参与人数 1金币 +200 收起 理由
Joestar.Xu + 200 赞一个!

查看全部评分

回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-30 16:37:15
板凳
您好,您可以考虑通过表格绑定的方式来绑定的您的数据:https://demo.grapecity.com.cn/sp ... able-binding/purejs
回复 使用道具 举报
dybxin
注册会员   /  发表于:2024-1-30 16:52:09
地板
本帖最后由 dybxin 于 2024-1-30 17:00 编辑
Richard.Huang 发表于 2024-1-30 16:37
您好,您可以考虑通过表格绑定的方式来绑定的您的数据:https://demo.grapecity.com.cn/spreadjs/SpreadJST ...

我的第三行 就相当于是 table column的name了, 就是说我模板里面已经有表头了 ,实际铺数要从下面指定的行开始铺这该如何处理?
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-30 17:32:43
5#
本帖最后由 Richard.Huang 于 2024-1-30 17:34 编辑
dybxin 发表于 2024-1-30 16:52
我的第三行 就相当于是 table column的name了, 就是说我模板里面已经有表头了 ,实际铺数要从下面指定的 ...

您似乎是只要一个数据区域是吗,表头用您已经定义好的单元格。您可以将下面的数据区域通过插入表格并隐藏标题行,然后删除空白行来实现您的需求:

API:
隐藏标题行:https://demo.grapecity.com.cn/sp ... es.Table#showheader
删除空白行:https://demo.grapecity.com.cn/sp ... orksheet#deleterows
回复 使用道具 举报
dybxin
注册会员   /  发表于:2024-1-31 17:11:12
6#
Richard.Huang 发表于 2024-1-30 17:32
您似乎是只要一个数据区域是吗,表头用您已经定义好的单元格。您可以将下面的数据区域通过插入表格并隐藏 ...

好的,下来我会尝试下 ,感谢
回复 使用道具 举报
Richard.HuangSpreadJS 开发认证
超级版主   /  发表于:2024-1-31 17:15:37
7#
dybxin 发表于 2024-1-31 17:11
好的,下来我会尝试下 ,感谢

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