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);
});
}
});
});
|
最佳答案
查看完整内容
您好,SSJSON作为一个纯字符串存储数据的文件格式,其占用空间大一直都是一个无法根治的问题,我这边在V13和V17中都进行了测试,即使经过了四个大版本的迭代,SSJSON类型文件的大小依然无法得到有效的控制。
所以在V16中,我们推出了SJS格式,该格式相比SSJSON更小,速度更快,因此,结合您目前的需求,我们建议升级到新版本来实现。
|