找回密码
 立即注册

QQ登录

只需一步,快速开始

LoveDreaMing

注册会员

4

主题

17

帖子

83

积分

注册会员

积分
83
LoveDreaMing
注册会员   /  发表于:2021-8-31 17:28  /   查看:4023  /  回复:11
10金币
本帖最后由 LoveDreaMing 于 2021-9-1 19:56 编辑

使用setValue给单元格赋值,但是改变数据,表格不重新渲染

新附件已上传 麻烦帮忙处理一下!

index.vue

21.92 KB, 下载次数: 103

模拟实际场景

最佳答案

查看完整内容

经调研,这个时间是花在了autofitColumn上,自适应那么多列的数据确实需要花费比较多的时间 建议您使用setColumnWidth去设置列宽,就像下面的代码那样,可以优化到几十毫秒,就像上图那样。

11 个回复

倒序浏览
最佳答案
最佳答案
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-8-31 17:28:52
来自 12#
LoveDreaMing 发表于 2021-9-2 11:37
按照这种方式是能够实现动态渲染的  但是 数据超过几百就会特别的卡顿 数据上千设置造成浏览器的卡死现象 ...

经调研,这个时间是花在了autofitColumn上,自适应那么多列的数据确实需要花费比较多的时间
image.png898123779.png

建议您使用setColumnWidth去设置列宽,就像下面的代码那样,可以优化到几十毫秒,就像上图那样。
image.png877005309.png
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-8-31 17:45:38
2#
您好,您提供的单个vue文件这边未能运行,麻烦您在附件的demo复现您的问题或者移除您的业务逻辑提供一个能够复现问题的工程,demo越简洁我们越容易快速定位问题。

inandout.html

1.29 KB, 下载次数: 104

回复 使用道具 举报
LoveDreaMing
注册会员   /  发表于:2021-8-31 19:03:57
3#
Derrick.Jiao 发表于 2021-8-31 17:45
您好,您提供的单个vue文件这边未能运行,麻烦您在附件的demo复现您的问题或者移除您的业务逻辑提供一个能 ...

参照给的demo上传了新的附件,类似于这种效果,数据异步变化怎么实现表格跟着数据动态渲染
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-1 09:48:40
4#
LoveDreaMing 发表于 2021-8-31 19:03
参照给的demo上传了新的附件,类似于这种效果,数据异步变化怎么实现表格跟着数据动态渲染

您可以写一个promise在成功的回调用将数据写入,例如附件的demo。

inandout (2).html

1.87 KB, 下载次数: 98

回复 使用道具 举报
LoveDreaMing
注册会员   /  发表于:2021-9-1 11:58:10
5#
Derrick.Jiao 发表于 2021-9-1 09:48
您可以写一个promise在成功的回调用将数据写入,例如附件的demo。

不太符合 我的使用场景 我又上传了 新的附件 是在vue组件内实现的  延迟不断变化数据 需要动态的渲染表格
回复 使用道具 举报
Winny
超级版主   /  发表于:2021-9-1 15:35:01
6#
LoveDreaMing 发表于 2021-9-1 11:58
不太符合 我的使用场景 我又上传了 新的附件 是在vue组件内实现的  延迟不断变化数据 需要动态的渲染表格

您好,看了您的代码,咱们这边代码书写逻辑是有问题的。
数据到达之后并不会重新执行initWorkbook()方法,需要重新封装一个方法,在结果返回后调用封装好的方法。
回复 使用道具 举报
LoveDreaMing
注册会员   /  发表于:2021-9-1 17:23:10
7#
Winny 发表于 2021-9-1 15:35
您好,看了您的代码,咱们这边代码书写逻辑是有问题的。
数据到达之后并不会重新执行initWorkbook()方法 ...

单独封装了一个方法  但是只是在第一次调用时会渲染  后面的调用也生效了 但是都不再渲染了  已上传新的vue文件
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-9-1 18:22:04
8#
LoveDreaMing 发表于 2021-9-1 17:23
单独封装了一个方法  但是只是在第一次调用时会渲染  后面的调用也生效了 但是都不再渲染了  已上传新的v ...

这个是可以正常显示出现的,并且setData可以调用

About.vue

23.83 KB, 下载次数: 104

回复 使用道具 举报
LoveDreaMing
注册会员   /  发表于:2021-9-1 19:25:36
9#
本帖最后由 LoveDreaMing 于 2021-9-1 19:55 编辑
Derrick.Jiao 发表于 2021-9-1 18:22
这个是可以正常显示出现的,并且setData可以调用

延时改变 result 里面的数据 但是表格 渲染没变啊, 麻烦看一下 附件里的 index.vue 文件  希望是 数据变化 重复调用封装的方法 然后表格跟着数据变化也能重新渲染新的数据   

上传了 用js实现的初始化 也是第一次改变数据时能渲染出来  第二次也执行了 但是不渲染了

index.vue

16.6 KB, 下载次数: 86

js实现的渲染

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