找回密码
 立即注册

QQ登录

只需一步,快速开始

圆成

注册会员

1

主题

1

帖子

4

积分

注册会员

积分
4
  • 20

    金币

  • 1

    主题

  • 1

    帖子

最新发帖
圆成
注册会员   /  发表于:2024-4-28 13:53  /   查看:322  /  回复:2
1金币
本帖最后由 Ellia.Duan 于 2024-4-29 15:19 编辑


产品:SpreadJS
版本:13.0.3
外部的xlsx文件48kB,,我们再用spread.js导入后,文件大小会变大好几倍?
代码里面有描述,文件变化大小。也可以按附件测试
我们的代码为:

designer.loader.ready(function() {
                var uploader = WebUploader.create({
                        accept: {
                                title: 'Excel',
                                extensions: "xlsx",
                                mimeTypes: ".xlsx"
                        },
                        auto: true,
                        swf: 'static/webuploader/js/Uploader.swf',
                        server: '',
                        pick: '#pickerformoul',
                        compress: null,
                        duplicate: true
                });
                setTimeout(function() {
                        $('.importClass label').css({'height':'105px'});
                        $('.importClass div').css({'height':'105px'});
                },500);
                uploader.on('uploadComplete', function(file) {
                        console.log(file)
                        if (file.ext != "xlsx" && file.ext != "xls") {
                                layer.msg('仅支持[xlsx]格式的excel文件!');
                                return;
                        }
                        var reader = new FileReader();
                        reader.readAsArrayBuffer(file.source.source);
                        reader.onload = function() {
                                var result = this.result;
                                var blob = null;
                                if (typeof result === 'object') {
                                        blob = new Blob([result])
                                } else {
                                        blob = result
                                }
                                   
/////////////////////////////////////////////(blob ),这个地方文件的大小不会变
                                var excelIO = new GC.Spread.Excel.IO();
                                excelIO.open(blob, function(data) {
                                        spread.suspendPaint();
                                        if (spread.getSheetFromName("辅助计算页")) {
                                                layer.confirm('已有辅助计算页,确定替换吗?', {
                                                        btn: ['确定', '取消']
                                                }, function() {
                                                        spread.setActiveSheet("辅助计算页");
                                                        designer.actions.doAction("deleteSheet", spread);
                                                        fzjsyFun(data)
                                                        layer.msg("替换成功");
                                                }, function() {});
                                        } else {
/////////////////////////console.log(data),这个地方文件的大小就会,大好几倍
                                                fzjsyFun(data)
                                                layer.msg("导入成功");
                                        }
                                        spread.resumePaint();
                                }, function(message) {
                                        //console.log(message);
                                });
                        }
                });
               
        });

查看案例.rar

107.36 KB, 下载次数: 6

2 个回复

倒序浏览
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:2024-4-28 17:38:53
沙发
您好,SSJSON作为一个纯字符串存储数据的文件格式,其占用空间大一直都是一个无法根治的问题,我这边在V13和V17中都进行了测试,即使经过了四个大版本的迭代,SSJSON类型文件的大小依然无法得到有效的控制。

image.png830961608.png

所以在V16中,我们推出了SJS格式,该格式相比SSJSON更小,速度更快,因此,结合您目前的需求,我们建议升级到新版本来实现。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
Joestar.XuSpreadJS 开发认证
超级版主   /  发表于:5 天前
板凳
您好,请问您的问题是否已经解决,如果仍未解决,欢迎继续回帖,我们来协助调研。
SpreadJS 17.0.8 | GcExcel 7.1.1 已发布~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部