找回密码
 立即注册

QQ登录

只需一步,快速开始

小胖子

初级会员

25

主题

81

帖子

284

积分

初级会员

积分
284
小胖子
初级会员   /  发表于:2019-8-28 18:49  /   查看:5996  /  回复:16
我现在是有多个ssjson对象
for(var i=0;i<selectedRows.length;i++){
selectedRows[i].modelData(这是多个对象)
在循环这里怎么实现批量打印和批量导出

}
现在用的是10.0.1的包,帮忙实现一下,看了帖子感觉没解决

16 个回复

正序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-9-4 13:46:57
17#
对,这是没办法的,因为Workbook中包含了很多公用的信息,worksheet没法脱离所在的workbook单独存在。

批量打印一般都需要加载多个workbook,workbook也可以放到隐藏的div里,这里可以灵活处理。
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-9-4 11:30:50
16#
KevinChen 发表于 2019-9-3 18:16
您好,Demo里的json是workbook的,不可能直接导入到sheet上,

只能走合并追加的逻辑,

好吧 ,解决了,那这样的话岂不是就拿一个空表单在倒腾数据到主表单,倒腾完了打印主表单?
// 创建空表单
        var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));//主表单

        var temp = new GC.Spread.Sheets.Workbook(document.getElementById("temp"));//倒腾的表单
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-9-3 18:16:25
15#
您好,Demo里的json是workbook的,不可能直接导入到sheet上,

只能走合并追加的逻辑,

参考一下这篇帖子:

https://gcdn.grapecity.com.cn/fo ... hlight=%BA%CF%B2%A2
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-9-3 17:12:09
14#

写了一个dome,附件,
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-9-3 11:24:33
13#
KevinChen 发表于 2019-9-2 14:47
您好,创建Worksheet对象,需要new关键字,如我上一层所说,代码应该这样写:

batch_Print.rar (1.79 KB, 下载次数: 62)
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-9-2 14:47:49
12#
您好,创建Worksheet对象,需要new关键字,如我上一层所说,代码应该这样写:

  1. var newSheet = new GC.Spread.Sheets.Worksheet()
复制代码


对应你代码中这句:

image.png550741576.png

如果仍然解决不了问题,请打包一个能重现问题,能运行的Demo,上传到帖子附件。
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-9-2 10:33:12
11#
KevinChen 发表于 2019-8-30 09:42
可能是老版本的API文档有一些bug,

newSheet.name(i);//这边也报错
下面是论坛里面的
var spread = new GC.Spread.Sheets.WorkBook()
var newSheet = GC.Spread.Sheets.Worksheet()
newSheet.fromJSON(JSON.parse(JSON.stringify(sheet.toJSON())))newSheet.name(i)//这块是这么写吗,还是少啥代码的了newSheet.name(i)是点呢还是啥呀 ?
我这V10的版本,能写个dome吗?
我就是有2个ssjson对象,把它两循环打出来就行,批量打印
spread.addJSON(newSheet)
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-30 09:42:34
10#
可能是老版本的API文档有一些bug,


Worksheet需要new关键字来创建实例:

  1. var newSheet = new GC.Spread.Sheets.Worksheet()
复制代码
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-8-29 18:22:12
9#
KevinChen 发表于 2019-8-29 17:27
您好,V10版本不支持导出时仅导出数据,所以需要您在执行导出操作前,手动删掉对应单元格的公式,删除公式 ...

好的,谢谢,我在问个问题,批量打印,我也是多个ssjson对象,V10版本,看论坛里面,好像是不支持多个spread对象,但是可以把ssjson对象放在sheet页里面,弄成一个spread对象打印,
for(var i=0;i<selectedRows.length;i++){
                        modelData = JSON.parse(selectedRows.modelData)
                        /*modelData = JSON.parse(val.modelData);
                        var sheet = accSub.spread.getActiveSheet();
            newSheet.setName("addedSheet"+i);
            accSub.spread.addSheet(i, modelData);*/
                        var newSheet = GC.Spread.Sheets.Worksheet()
                        newSheet.fromJSON(modelData);
                        newSheet.name(i);
                        accSub.spread.addJSON(newSheet)
                }
                printSetting();
我这么写报错,var newSheet = GC.Spread.Sheets.Worksheet()这个就报错了,是v10版本不这么写吗
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部