找回密码
 立即注册

QQ登录

只需一步,快速开始

LYJL265

初级会员

19

主题

62

帖子

203

积分

初级会员

积分
203
LYJL265
初级会员   /  发表于:2018-10-25 08:49  /   查看:4313  /  回复:9
第一次通过打开模板的方式做完一个表之后
图片.png453578490.png
通过这样的方式保存到数据库↓
图片.png675941772.png
保存完成也没有报错提示保存成功,
再次通过打开保存之后的这个二进制的时候报错


图片.png664884032.png
图片.png646303405.png
总之就是打不开,怀疑是保存的时候有问题。
求解决,挺急的


图片.png880540161.png
图片.png221879576.png

9 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-25 09:09:02
沙发
将第二张图里的bytes保存成一个XML发上来
回复 使用道具 举报
LYJL265
初级会员   /  发表于:2018-10-25 09:50:20
板凳
dexteryao 发表于 2018-10-25 09:09
将第二张图里的bytes保存成一个XML发上来

怎么保存成xml文件啊,我直接获取二进制存到数据库里的
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-25 22:08:53
地板
bytes to files 这个网上一搜很多的。
虽然你数据库保存的是二进制,但是实际上spread 保存打开的都是xml,而且只有导出xml我们这边才能尝试去重现问题。

pFileStream = new FileStream(fileName, FileMode.OpenOrCreate);
                pFileStream.Write(pReadByte, 0, pReadByte.Length);
回复 使用道具 举报
LYJL265
初级会员   /  发表于:2018-10-26 08:45:02
5#
dexteryao 发表于 2018-10-25 22:08
bytes to files 这个网上一搜很多的。
虽然你数据库保存的是二进制,但是实际上spread 保存打开的都是xml ...

图片.png858787231.png 通过这样的方式保存成的xml文件


炼钢标准成本.rar

2.47 KB, 下载次数: 400

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-26 10:21:02
6#
问题找到了,在你保存bytes时候需要设置memorystream position 为0

  1.             var ms = new MemoryStream();
  2.             fpSpread1.Save(ms, false);


  3.             ms.Flush();
  4.             ms.Position = 0;
  5.             byte[] bytes1 = new byte[ms.Length];
  6.             ms.Read(bytes1, 0, bytes1.Length);

  7.          
复制代码


其实用一行代码就可以了
            byte[] bytes = ms.ToArray();
回复 使用道具 举报
LYJL265
初级会员   /  发表于:2018-10-26 16:38:18
7#
dexteryao 发表于 2018-10-26 10:21
问题找到了,在你保存bytes时候需要设置memorystream position 为0

好的解决了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-26 17:14:47
8#
回复 使用道具 举报
LYJL265
初级会员   /  发表于:2018-10-27 16:24:13
9#

是打开本地的xml文件的快还是打开数据库里保存的二进制的快呢,
像我这样需要做一个将近300多兆的大报表存二进制的话再查出来有点儿忒慢了
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-10-29 08:37:44
10#
LYJL265 发表于 2018-10-27 16:24
是打开本地的xml文件的快还是打开数据库里保存的二进制的快呢,
像我这样需要做一个将近300多兆的大报表 ...

对于spread,打开的都是内存流,具体来自于文件还是数据库都一样,所以这边就看您服务器,文件存储性能好还是数据库查询保存性能好了。
可以将xml文件先进行压缩再存储,减小文件体积。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部