找回密码
 立即注册

QQ登录

只需一步,快速开始

tianshun2021
金牌服务用户   /  发表于:2022-9-21 17:41  /   查看:1486  /  回复:9
100金币
本帖最后由 tianshun2021 于 2022-9-21 17:43 编辑

你好,我再使用GCExcel做批量生成功能时,从前端传过来的80条数据,然后我使用GCExcel提供sheet.setDataSource方法将数据注入,前几条的时候还很快只要4秒左右,但是后来就越来越慢,从4秒慢慢到10秒 然后20秒 30秒,就是执行的越多就会越慢。请问有什么办法可以解决吗?
大概批量生成逻辑如下图:


image.png116679991.png


主要就是sheet.setDataSource()方法那里,前面很快后面就越来越慢!

最佳答案

查看完整内容

经电话沟通,如果要生成多个绑定实例,可以初始化多个workbook,每个workbook各自进行数据绑定,而不是在同一个workbook上进行多次数据绑定。

9 个回复

倒序浏览
最佳答案
最佳答案
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-21 17:41:36
来自 10#
本帖最后由 Clark.Pan 于 2022-9-26 09:10 编辑

经电话沟通,如果要生成多个绑定实例,可以初始化多个workbook,每个workbook各自进行数据绑定,而不是在同一个workbook上进行多次数据绑定。
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-21 18:05:55
2#
发个demo来,我们具体调查一下看看
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2022-9-22 13:18:50
3#
本帖最后由 tianshun2021 于 2022-9-22 13:22 编辑
Clark.Pan 发表于 2022-9-21 18:05
发个demo来,我们具体调查一下看看

好的 附件已上传

贴个我这边的执行时间
image.png65530394.png image.png456327819.png

可以看出来第一次和最后一次执行时间相差数倍

demo.zip

80.88 KB, 下载次数: 61

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-22 17:13:37
4#
看了一下代码你这个绑定写法上有点问题,完全没有必要去循环绑定,直接绑定一个JsonObject即可。帮你改了一下,现在的效果只需绑定一次耗时300ms,结果跟您之前的结果一致。

test.java

6.17 KB, 下载次数: 64

回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2022-9-22 18:01:54
5#
我这个toList方法是模拟前端发过来的数据,有很多条且是不一样的,我demo里只是图方便使用在list里面放了很多同一个JSONObject对象,实际是多个个不同的对象。然后我要把每一条数据使用setDataSource放进同一个workbook下不同的两个sheet里面,在保存到数据库,就是说我有多少条数据 就需要保存多少个workbook.tojson
image.png920873718.png
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2022-9-22 18:02:33
6#
Clark.Pan 发表于 2022-9-22 17:13
看了一下代码你这个绑定写法上有点问题,完全没有必要去循环绑定,直接绑定一个JsonObject即可。帮你改了一 ...

我这个toList方法是模拟前端发过来的数据,有很多条且是不一样的,我demo里只是图方便使用在list里面放了很多同一个JSONObject对象,实际是多个个不同的对象。然后我要把每一条数据使用setDataSource放进同一个workbook下不同的两个sheet里面,在保存到数据库,就是说我有多少条数据 就需要保存多少个workbook.tojson
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-22 18:07:37
7#
我意思是你就不要循环list,如果是多个数据就整到一个jsonObject中,单元格绑定就跟list压根没关系
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2022-9-22 18:14:15
8#
Clark.Pan 发表于 2022-9-22 18:07
我意思是你就不要循环list,如果是多个数据就整到一个jsonObject中,单元格绑定就跟list压根没关系

可以电话或者微信沟通吗? 我的手机 17609078102微信也是这个
回复 使用道具 举报
tianshun2021
金牌服务用户   /  发表于:2022-9-23 10:54:52
9#
Clark.Pan 发表于 2022-9-22 18:07
我意思是你就不要循环list,如果是多个数据就整到一个jsonObject中,单元格绑定就跟list压根没关系

不循环list我怎么添加?我要出30份校准证书,前端发来一个包含30份证书的数据的list,我需要把每一份证书数据设置到单元格,保存成一个单独的workbook,这样做不对吗?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部