找回密码
 立即注册

QQ登录

只需一步,快速开始

友情岁月

注册会员

2

主题

7

帖子

19

积分

注册会员

积分
19
最新发帖
友情岁月
注册会员   /  发表于:2018-5-21 10:55  /   查看:3863  /  回复:8
     var json = JSON.stringify(spread.toJSON());比如这样是获取spread的json数据,
有没有方法可以直接获取二进制的啊

8 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-21 15:42:37
沙发
SpreadJS本身没有这样的功能,您可以自行转换一下。
回复 使用道具 举报
友情岁月
注册会员   /  发表于:2018-5-23 15:32:26
板凳
ClarkPan 发表于 2018-5-21 15:42
SpreadJS本身没有这样的功能,您可以自行转换一下。

这样获取json数据后传输给后台,后台将30多M大小json数据转化为二进制效率非常慢,有什么解决办法?
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-23 18:02:58
地板
这个因为spreadjs是纯前端产品,产品本身不涉及服务器端,所以产品本身没有相关接口。您可以找一找有没有其他优化的方式。
回复 使用道具 举报
友情岁月
注册会员   /  发表于:2018-5-24 09:05:04
5#
ClarkPan 发表于 2018-5-23 18:02
这个因为spreadjs是纯前端产品,产品本身不涉及服务器端,所以产品本身没有相关接口。您可以找一找有没有其 ...

额,我这边用的是spreadjs9 不是最新版本,展示和转换是需要经过服务端的,而且是必须经过你们的dll带的方法转化,否则会出现编码不一致的问题。spread 9 是不支持类试于 var excelIo = new GC.Spread.Excel.IO();这样的方法的
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-24 10:37:20
6#
服务器端ExcelIO也只是将spread序列化的json对象转化成Excel或者将Excel转化为json,没有其他功能,所以需要您自己来实现。
回复 使用道具 举报
友情岁月
注册会员   /  发表于:2018-5-24 15:03:26
7#
ClarkPan 发表于 2018-5-24 10:37
服务器端ExcelIO也只是将spread序列化的json对象转化成Excel或者将Excel转化为json,没有其他功能,所以需 ...

using (MemoryStream stream = new MemoryStream())
                {
                    new Exporter(spreadJson).SaveExcel(stream, ExcelFileFormat.XLSX, ExcelSaveFlags.NoFlagsSet, null);
                    byte[] arr = stream.ToArray();
主要是这一步费时间,将获取到的Excel文件的json数据转化成二进制的时候,速度非常慢
回复 使用道具 举报
友情岁月
注册会员   /  发表于:2018-5-24 15:06:34
8#
ClarkPan 发表于 2018-5-24 10:37
服务器端ExcelIO也只是将spread序列化的json对象转化成Excel或者将Excel转化为json,没有其他功能,所以需 ...

var json = JSON.stringify(spread.toJSON());  spread 9 只能获取spread对象的json,所以我需要把json转化为二进制
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-5-24 17:07:18
9#
首先
new Exporter(spreadJson).SaveExcel(stream, ExcelFileFormat.XLSX, ExcelSaveFlags.NoFlagsSet, null);这一步操作是将spreadjson转换为Excel的流
byte[] arr = stream.ToArray();这一步是将流转换为二进制。
再一个,MemoryStream与stream.ToArray();这个不是产品本身的代码,是.NET本身的代码
如果您需要Json转换为二进制,那么直接将spreadJson转换为二进制就行了,根本无需上述操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部