找回密码
 立即注册

QQ登录

只需一步,快速开始

bamning

注册会员

11

主题

23

帖子

84

积分

注册会员

积分
84
bamning
注册会员   /  发表于:2016-8-31 11:34  /   查看:3572  /  回复:3
本帖最后由 bamning 于 2016-8-31 15:03 编辑

我有一个大概100行100列的sheet模板
然后从向模板中填充大概1000条左右的记录
spread.isPaintSuspended(true);
//获取模板var oldSheet = spread.getSheet(0);
//循环添加sheet
workbook.copySheet(oldSheet, null);
//循环填充
var sheetCount = spread.getSheetCount();
for (var i = 0; i < sheetCount; i++) {
     var sheet = spread.getSheet(i);         
     ..............
     for (var key in item) {
          sheet.setValue(rowIndex, c, item[key]);
     }
}
spread.isPaintSuspended(false);

调试之后发现第一个sheet填写非常慢,长达几分钟,但是后面的sheet填充得非常快,这个是怎么回事呢?






3 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-8-31 16:39:46
沙发
我写了个类似domo 么有发现问题。
可否提供个Demo
回复 使用道具 举报
bamning
注册会员   /  发表于:2016-9-1 09:19:19
板凳
dexteryao 发表于 2016-8-31 16:39
我写了个类似domo 么有发现问题。
可否提供个Demo

我在copysheet之后绘制spread.isPaintSuspended(flase);
然后批量填充数据再
spread.isPaintSuspended(true);
...........
spread.isPaintSuspended(flase);

这样貌似就解决了,具体原因我也不懂。demo可能给不了,因为本身模板有很多数据验证和绑定字段的设置,但处理过程都是一样的。
回复 使用道具 举报
CCKan
银牌会员   /  发表于:2016-9-1 10:19:59
地板
根据你的描述来看,我猜测你也许是在 copy sheet 的过程中或者之后有增加新的 sheet。你用这种方式解决了就OK
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部