找回密码
 立即注册

QQ登录

只需一步,快速开始

gavinqin

注册会员

4

主题

11

帖子

43

积分

注册会员

积分
43

微信认证勋章

最新发帖
gavinqin
注册会员   /  发表于:2019-12-20 16:10  /   查看:3038  /  回复:5
平台:Spread.NET
版本:1.5.0.1
问题:
1. 现在试图加载14W条数据,在绑定数据时使用的是 worksheet.Range[range].Value = list; 来进行数据绑定,想要问问绑定数据时有没有比这种方式性能更好的方法。
2. 由于是一个BS应用,在Server端把Excel构建好之后想要把Excel以流的方式传输给前端,当前做法是每次都要生成一个临时文件,完了之后又要把这个文件删掉,感觉这样做浪费了服务器性能,想请问我能否直接把workbook保存为一个二进制流,然后通过stream直接传给前端,以下是当前的做法:

WeChat Image_20191220161010.png

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-12-20 17:28:33
沙发
Save方法是有保存文件流的重载方法的,不需要保存临时文件。
回复 使用道具 举报
gavinqin
注册会员   /  发表于:2019-12-20 18:21:34
板凳
dexteryao 发表于 2019-12-20 17:28
Save方法是有保存文件流的重载方法的,不需要保存临时文件。

好的,谢谢,目前已经转到文件流的方式来处理,另外根据我们检测发现通过我以上设置value的方法14万条数据使用了6.5s左右的时间,这个上面有没有可以优化的地方
另外在转为数据流操作的时候,原先经过保存(xlsx)文件最终传输的数据大小为20M,现在转为流后变成了33M,在使用Save的时候也传了fileformat为xlsx进去,写法为:workbook.Save(ms, GrapeCity.Documents.Excel.SaveFileFormat.Xlsx); 请问我这样写是否有错?,如果没错那为什么数据流会变大?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-12-23 12:17:38
地板
您好,代码没问题。 文件大小发生变化和Spread内部处理有关系,xlsx格式本身是个压缩包,里面都是xml文件,spread解析后在重新生成xml,这个过程会产生一些变化。是正常的。
回复 使用道具 举报
gavinqin
注册会员   /  发表于:2019-12-23 12:28:18
5#
dexteryao 发表于 2019-12-23 12:17
您好,代码没问题。 文件大小发生变化和Spread内部处理有关系,xlsx格式本身是个压缩包,里面都是xml文件, ...

好的,谢谢,文件大小的问题我们已经通过添加 isCompactMod 搞定了,setValue的我们还在做一点小尝试,还是由于我们对产品不熟悉,麻烦你了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-12-23 18:08:45
6#
有其他问题您继续发帖就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部