找回密码
 立即注册

QQ登录

只需一步,快速开始

rsandtl

初级会员

24

主题

51

帖子

211

积分

初级会员

积分
211
rsandtl
初级会员   /  发表于:2021-1-6 16:39  /   查看:2850  /  回复:3
怎样提高复制一行的样式给后面的几万行的效率
目前的方式是通过一行一行遍历使用sheet.copyTo的方式,在遍历前会通过sheet.suspendPaint()停止表格的渲染,在遍历完成后resumePaint(),但是这样的方式会导致整个页面假死一段时间,也尝试过以下方法
var fromRanges = new GC.Spread.Sheets.Range(row- 1, 0, 1, sheet.getColumnCount());
var pastedRange = new GC.Spread.Sheets.Range(row, 0, rowCount, sheet.getColumnCount());
spread.commandManager().execute({
    cmd: "clipboardPaste",
    sheetName: sheet.name(),
    fromSheet: sheet,
    fromRanges: [fromRanges],
    pastedRanges: [pastedRange],
    isCutting: false,
    clipboardText: "",
    pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.formatting
});一样会导致页面假死的情况有没有其他更好的方式?在复制样式的时候,页面不假死

3 个回复

倒序浏览
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-6 17:04:51
沙发
您好,我这边测试了3万行的表单未能复现您的问题,麻烦您提供一个能复现问题的demo或是在我的demo复现您的问题。

CopyTo复制插入行.html

5.29 KB, 下载次数: 112

回复 使用道具 举报
rsandtl
初级会员   /  发表于:2021-1-7 16:29:41
板凳
已解决,采用的是向后插入行实现
回复 使用道具 举报
Derrick.Jiao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-7 16:34:01
地板
rsandtl 发表于 2021-1-7 16:29
已解决,采用的是向后插入行实现

解决了就好,没问题的话这边就先给您结贴了,有新问题欢迎开新帖交流~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部