找回密码
 立即注册

QQ登录

只需一步,快速开始

小胖子

初级会员

24

主题

79

帖子

273

积分

初级会员

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

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

16 个回复

倒序浏览
小胖子
初级会员   /  发表于:2019-8-28 19:51:01
沙发
if (selectedRows.length > 0) {
                $.each(selectedRows, function (i, item) {
                        modelData = JSON.parse(item.modelData);
                        fileName = item.report_name+"-"+item.report_month+"月";
                        accSub.spread.fromJSON(modelData,{doNotRecalculateAfterLoad: true});
                        if (fileName.substr(-5, 5) !== '.xlsx') {
                        fileName += '.xlsx';
                    }
                        var json = accSub.spread.toJSON();
                    excelIo.save(json, function (blob) {
                        saveAs(blob, fileName);
                    },function (e) {
                        console.log(e);
                    });
                })
        }
这批量导出selectedRows里面有2条数据,怎么出来都是最后一个呢,怎么写呢?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-29 09:24:15
板凳
您好,批量导出可以参考一下这篇帖子:

https://gcdn.grapecity.com.cn/fo ... p;page=1&extra=
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-8-29 10:37:35
地板
KevinChen 发表于 2019-8-29 09:24
您好,批量导出可以参考一下这篇帖子:

https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=5 ...

<script src="http://stuk.github.io/jszip/dist/jszip.js"></script>
    <script type="text/javascript" src="http://stuk.github.io/jszip-utils/dist/jszip-utils.js"></script>
    <script type="text/javascript" src="http://stuk.github.io/jszip-utils/dist/jszip-utils-ie.js"></script>
    <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
这个是第三方控件吗????
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-8-29 10:49:58
5#
小胖子 发表于 2019-8-29 10:37
这个是第三方控件吗????

我还有一个问题呢。我导出有点问题,我是对ssjson里面的某一个单元格的数据做了修改,但是导出直接报了修复,修复完确实也能显示,但是为什么会出现这个情况呢, 11.png
2,2和2,4里面的value是我新写进去的,以前是0,我改了的,还有2,2和2,4立面以前有个formula公式呢,我删除了,我只要数字不要公式了,反正为什么会出现修复呢 22.png 33.png
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-29 11:36:45
6#
jszip是第三方的压缩包组件。

为什么要直接操作ssjson?如果一定要操作ssjson文档,请参考schema:

https://demo.grapecity.com.cn/sp ... l#fullschema11.html
回复 使用道具 举报
小胖子
初级会员   /  发表于:2019-8-29 14:40:40
7#
KevinChen 发表于 2019-8-29 11:36
jszip是第三方的压缩包组件。

为什么要直接操作ssjson?如果一定要操作ssjson文档,请参考schema:

我用了自定义公式,自定义公式返回来的值是后台返的,我计算完这些自定义公式,把后台的值赋值到对应单元格里面,为啥用表格编辑器里面的导出excel,打开也会弹出修复呢?修复完打开而且自定义公式也带回出来了,我现在需求的就是我就要公式的值到excel里面,公式我不要,有没有什么办法处理?但是单纯的导出一些样式和数字那是不报修复的?这是为什么呢?有别的解决办法吗
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-29 17:27:21
8#
您好,V10版本不支持导出时仅导出数据,所以需要您在执行导出操作前,手动删掉对应单元格的公式,删除公式不影响单元格的值,删除方法:

  1. activeSheet.setFormula(row, col, null);
复制代码
回复 使用道具 举报
小胖子
初级会员   /  发表于: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版本不这么写吗
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2019-8-30 09:42:34
10#
可能是老版本的API文档有一些bug,


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

  1. var newSheet = new GC.Spread.Sheets.Worksheet()
复制代码
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部