找回密码
 立即注册

QQ登录

只需一步,快速开始

园园

中级会员

79

主题

224

帖子

593

积分

中级会员

积分
593

微信认证勋章

园园
中级会员   /  发表于:2017-6-7 16:16  /   查看:7018  /  回复:10
$.getJSON("../modelManage/yyma_TutorialSample/certificate/" + wjmc + ".ssjson", function (data) {
        var spreadTemp = new GC.Spread.Sheets.Workbook();
        spreadTemp.fromJSON(data);
        var copySheet = spreadTemp.sheets[0]; //  获取到的历史数据原始记录sheet
        var rowCount = copySheet.getRowCount();
//                                        spread.suspendPaint();
        var fromRange = [copySheet.getRange(0, -1, 90, -1)]; // 复制从第页开始
        var jlSheet = spread.sheets[0];
        var toRanges = [jlSheet.getRange(0, -1, 90, -1)];
        spread.commandManager().execute({cmd: "clipboardPaste", sheetName: jlSheet.name(), fromSheet: copySheet, fromRanges: fromRange, pastedRanges: toRanges, isCutting: false, clipboardText: "", pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all});
//        spread.resumePaint();
                                       
});
我看了copySheet是有内容的,粘贴也执行了,就是没有任何内容。是我的内容不在sheet里吗?

9EB6E451A4854FCFA5DE39EE885F508B.ssjson

481.35 KB, 下载次数: 220

复制的json文件

10 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-7 17:31:25
沙发
你这个json有一个隐藏的sheet sheetItemInfo 。所以sheet[0]是这个隐藏sheet

这个sheet 只有2行7列。你设置的range 不合法。
我测试下面代码没问题。
var fromRange = [copySheet.getRange(0, 0, 2, 7)];

  var toRanges = [jlSheet.getRange(0, 0, 2, 7)];

spread.commandManager().execute({cmd: "clipboardPaste", sheetName: sheet.name(), fromSheet: copySheet, fromRanges: fromRange, pastedRanges: toRanges, isCutting: false, clipboardText: "", pasteOption: GC.Spread.Sheets.ClipboardPasteOptions.all});



另外如果您药完整复制sheet 直接用 下面代码就好了。

sheet.fromJSON( JSON.parse(JSON.stringify(copysheet.toJSON()))  )
回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 08:55:30
板凳
dexteryao 发表于 2017-6-7 17:31
你这个json有一个隐藏的sheet sheetItemInfo 。所以sheet[0]是这个隐藏sheet

这个sheet 只有2行7列。你 ...

json文件应该是发错了,是这个,没有第一个隐藏sheet,而且我获取到了要copy的sheet的内容,是没问题的,有我想要的。

618DBE104F9D4D3D94BFCBB3FDA0AE78.ssjson

1.07 MB, 下载次数: 220

回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 09:33:18
地板
dexteryao 发表于 2017-6-7 17:31
你这个json有一个隐藏的sheet sheetItemInfo 。所以sheet[0]是这个隐藏sheet

这个sheet 只有2行7列。你 ...

而且我不是复制整个sheet,只是想复制第60行之后的内容,只复制数据也行,可以只复制数据吗?
回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 09:45:26
5#
dexteryao 发表于 2017-6-7 17:31
你这个json有一个隐藏的sheet sheetItemInfo 。所以sheet[0]是这个隐藏sheet

这个sheet 只有2行7列。你 ...

我试了一下,如果要粘贴的sheet是我新建的,内容是可以被粘贴上去的,如果是我打开的json文件,就粘贴不上去,json文件也是可编辑的,是有什么设置让他不允许粘贴吗?

9EB6E451A4854FCFA5DE39EE885F508B.ssjson

481.35 KB, 下载次数: 215

要粘贴的json文件

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-6-8 11:42:55
6#
我这里测试没有问题,如果只获取数据很简单,直接getArray 和 setArray就好了。

http://demo.gcpowertools.com.cn/ ... /samples/getSetData

或者你给我个Demo我再看看
回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 12:41:43
7#
dexteryao 发表于 2017-6-8 11:42
我这里测试没有问题,如果只获取数据很简单,直接getArray 和 setArray就好了。

http://demo.gcpowertoo ...

getArray setArray能把值取到,也能赋值,但是有些单元格是带公式的,带公式的单元格又不固定,这样的怎么处理呢?最后要的效果是,如果是公式就复制公式,如果是值就复制值。其实用cmd: "clipboardPaste"如果好用就可以用这个,不管是什么复制过来就行,但是现在不好用啊。
回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 12:51:47
8#
dexteryao 发表于 2017-6-8 11:42
我这里测试没有问题,如果只获取数据很简单,直接getArray 和 setArray就好了。

http://demo.gcpowertoo ...

我要粘贴的这个json文件有三个sheet,唯独第二个sheet页不能粘贴,第一个和第三个都可以,不知道为什么。

9EB6E451A4854FCFA5DE39EE885F508B.ssjson

481.35 KB, 下载次数: 218

回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 13:22:11
9#
dexteryao 发表于 2017-6-8 11:42
我这里测试没有问题,如果只获取数据很简单,直接getArray 和 setArray就好了。

http://demo.gcpowertoo ...

先不研究这个为啥不好用了,我换个模板就好使了。
我想从一个json文件里复制,粘贴到另一个json文件,可以只复制值和公式吗?

回复 使用道具 举报
园园
中级会员   /  发表于:2017-6-8 13:38:45
10#
dexteryao 发表于 2017-6-8 11:42
我这里测试没有问题,如果只获取数据很简单,直接getArray 和 setArray就好了。

http://demo.gcpowertoo ...

我实现了,先把值取过来,再取一遍公式。 image.png29366148.png

不能用cmd: "clipboardPaste",因为我要粘贴的区域,有的是带数和公式的可编辑的,其余部分是不允许编辑的,这种粘贴不能成功,就得用setArray的方式。
好在成功了,谢谢帮忙,也给大家做个参考。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部