找回密码
 立即注册

QQ登录

只需一步,快速开始

bingdaoice

中级会员

44

主题

208

帖子

608

积分

中级会员

积分
608
bingdaoice
中级会员   /  发表于:2020-7-17 14:23  /   查看:4409  /  回复:5
1金币
  使用  数据流方式存入数据库,再次打开文件大小为2M左右。
使用文件路径的方式保存为XML文件,是1M左右。
我用设器器导出来.xlsx大小为25K左右。

我想请问一下,我如何保存。文件大小才会最小(内容及格式不能变化)。


使用数据流的方式如下:
MemoryStream stream = new MemoryStream();
                Spread_Excel.Save(stream, false);
                byte[] fbytes = stream.GetBuffer();

使用文件路径的方式如下:
Spread_RecdCertif.Save(saveFileDialog.FileName, false);

附件1-表示从数据库中用以下方式生成的文件  2M
DataTable dt = DbHelperSQL.QueryTable(Sql);
                byte[] bin = (byte[])dt.Rows[0][0];
                tpNumber = dt.Rows[0][1].ToString();
                if (bin.Length > 100)
                {
                    using (FileStream fs = new FileStream(RecdPath, FileMode.Create, FileAccess.Write))
                    {
                        fs.Write(bin, 0, bin.Length);
                        fs.Dispose();
                        fs.Close();                       
                        return RecdPath;
                    }
                }


2-表示用Spread打开上面1文件后,用Spread_RecdCertif.Save(saveFileDialog.FileName, false);导出保存的。   1M

3-表示用设计器另存为XLSX的文件。25K,但此文件中的格式和内容有一定化。

1.rar

40.21 KB, 下载次数: 434

2.rar

39 KB, 下载次数: 419

3.rar

22.44 KB, 下载次数: 383

最佳答案

查看完整内容

你好,XLSX保存的数据和XML内容是不同的,XML中除了XLSX中的内容外,还会包含一些spread控件的特有设置,因此体积差异是较大的 至于你说的两个XML体积不同,理论上来说存储的数据是相同的,我把两个打开对比了一下也是如此,只是在R201900001641.xml最后一行存了很多空字符,导致体积变大,删除后体积就和另一个一样了,这个应该不影响使用

5 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-20 15:52:44
6#
不客气
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-20 15:41:58
5#
好的,谢谢。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-20 12:14:56
4#
比较简单的就是从数据库直接加载到spread控件后再重新保存,也就是你保存为1M大小文件的步骤

如果是改变生成的文件流保存到数据的大小的话,你可以先检查一下保存的代码看看
回复 使用道具 举报
bingdaoice
中级会员   /  发表于:2020-7-20 09:55:34
3#
好的。那请问有没有使XML体积变小的方法?
回复 使用道具 举报
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-7-17 14:23:02
来自 2#
你好,XLSX保存的数据和XML内容是不同的,XML中除了XLSX中的内容外,还会包含一些spread控件的特有设置,因此体积差异是较大的

至于你说的两个XML体积不同,理论上来说存储的数据是相同的,我把两个打开对比了一下也是如此,只是在R201900001641.xml最后一行存了很多空字符,导致体积变大,删除后体积就和另一个一样了,这个应该不影响使用

image.png360856627.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部