找回密码
 立即注册

QQ登录

只需一步,快速开始

FzcSuiY

注册会员

10

主题

39

帖子

149

积分

注册会员

积分
149
FzcSuiY
注册会员   /  发表于:2023-10-17 11:26  /   查看:1101  /  回复:11
1金币
本帖最后由 Ellia.Duan 于 2023-10-18 11:30 编辑


产品:SpreadJS
版本:v15
image.png419106139.png

请问一下在设置大量数据的时候使用setDataSource方法,如何从第一行开始,上面的表头行A不变?setArray比setDataSource慢

最佳答案

查看完整内容

您好,可以在上述代码基础上,在第一行新增行,写入name,age等标识。 结果如下 相关代码如下:

11 个回复

倒序浏览
最佳答案
最佳答案
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-17 11:26:25
来自 8#
FzcSuiY 发表于 2023-10-17 14:13
感谢回复! 但是你这只是改变了列头显示的文本吧,name和age字段也需要显示到第一行,不然不知道你下面的 ...

您好,可以在上述代码基础上,在第一行新增行,写入name,age等标识。
image.png713556213.png
结果如下
image.png796307983.png
相关代码如下:
  1.         let sheet = spread.getActiveSheet();

  2.         // 要绑定的数据
  3.         const persons = [
  4.             { name: 'Peter', age: 16 },
  5.             { name: 'Mark', age: 18 },
  6.             { name: 'John', age: 27 },
  7.             { name: 'Jane', age: 14 },
  8.         ]

  9.      // 列信息
  10.         const colInfos = [
  11.             { name: 'name', displayName: 'A' },
  12.             { name: 'age', displayName: 'B' },
  13.         ]
  14.         sheet.autoGenerateColumns = false
  15.         sheet.setDataSource(persons)
  16.         sheet.bindColumns(colInfos)
  17.         sheet.addRows(0,1)
  18.         sheet.setArray(0,0,[['name','age']])
复制代码



回复 使用道具 举报
Banana
注册会员   /  发表于:2023-10-17 13:50:18
2#

image.png616604613.png
代码实现:

  1. // 要绑定的数据
  2. const persons = [
  3.   { name: 'Peter', age: 16 },
  4.   { name: 'Mark', age: 18 },
  5.   { name: 'John', age: 27 },
  6.   { name: 'Jane', age: 14 },
  7. ]

  8. // 列信息
  9. const colInfos = [
  10.   { name: 'name', displayName: 'A' },
  11.   { name: 'age', displayName: 'B' },
  12. ]
  13. sheet.autoGenerateColumns = false
  14. sheet.setDataSource(persons)
  15. sheet.bindColumns(colInfos)
复制代码



回复 使用道具 举报
FzcSuiY
注册会员   /  发表于:2023-10-17 14:13:46
3#

感谢回复! 但是你这只是改变了列头显示的文本吧,name和age字段也需要显示到第一行,不然不知道你下面的数据都是什么含义的
回复 使用道具 举报
Banana
注册会员   /  发表于:2023-10-17 14:36:10
4#
FzcSuiY 发表于 2023-10-17 14:13
感谢回复! 但是你这只是改变了列头显示的文本吧,name和age字段也需要显示到第一行,不然不知道你下面的 ...

那可以尝试一下表格绑定  https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/data-binding/table-binding/purejs
回复 使用道具 举报
FzcSuiY
注册会员   /  发表于:2023-10-17 15:15:01
5#
Banana 发表于 2023-10-17 14:36
那可以尝试一下表格绑定  https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/features/data-bind ...

表格太慢了,就是从表格改回来的。
回复 使用道具 举报
Banana
注册会员   /  发表于:2023-10-17 16:19:14
6#
FzcSuiY 发表于 2023-10-17 15:15
表格太慢了,就是从表格改回来的。

参考这里提升性能:
https://demo.grapecity.com.cn/spreadjs/help/docs/BestPractices/UsingsuspendPaintandresumePaint
回复 使用道具 举报
FzcSuiY
注册会员   /  发表于:2023-10-17 17:00:35
7#
Banana 发表于 2023-10-17 16:19
参考这里提升性能:
https://demo.grapecity.com.cn/spreadjs/help/docs/BestPractices/UsingsuspendPai ...

你可以试试百万千万级的数据颗粒渲染 试试。
回复 使用道具 举报
FzcSuiY
注册会员   /  发表于:2023-10-18 09:51:36
9#
Ellia.Duan 发表于 2023-10-17 17:53
您好,可以在上述代码基础上,在第一行新增行,写入name,age等标识。

结果如下

感谢回复!这种方法也想过,但是列比较多又是动态列的情况下这个ABC替换也需要规律和时间,目前还有没其他的解决方法吗?
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2023-10-18 10:49:12
10#
根据您之前的回复来看,目前没有更好的方案了。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部