找回密码
 立即注册

QQ登录

只需一步,快速开始

wdtlcv

初级会员

21

主题

58

帖子

431

积分

初级会员

积分
431

活字格认证微信认证勋章

wdtlcv
初级会员   /  发表于:2017-2-6 10:23  /   查看:3695  /  回复:5
控件:Spread 8.0
环境:Fw 4.6

业务需求1:需要将Spread完整保存到本地文件,并且以后可以从保存的文件完整恢复到该状态。
问题1:如果保存前通过SortRow对数据进行排序,恢复后却是排序前的状态。
问题2:性能问题。Spread的数据量较大(150+列),保存的xml文件有上百M大小,恢复时需要分钟量级。

业务需求2:
需要根据业务动态创建出多个同样的Spread。
问题1:Spread并没有提供克隆控件的功能,只能按照上面的方式将模板Spread保存为XML文件然后再从新的Spread加载该XML以实现Spread的复制。
            如果模板Spread包含数据较多的话,仍然会产生性能问题。


针对以上问题,可有什么解决办法?

5 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-6 11:50:03
沙发
1 . SortRange保存XML是以前的数据,这个问题没有重现,出来,我这边测试排序后保存再加载是排序后的数据,没有问题。
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             FarPoint.Win.Spread.SortInfo[] sort = new FarPoint.Win.Spread.SortInfo[1];
  4.             sort[0] = new FarPoint.Win.Spread.SortInfo(0, false, System.Collections.Comparer.Default);

  5.             fpSpread1.ActiveSheet.SortRange(0, 0, 100, 2, true, sort);

  6.             fpSpread1.Save(@"D:\abc.xml", false);
  7.         }

  8.         private void button2_Click(object sender, EventArgs e)
  9.         {
  10.             fpSpread1.Open(@"D:\abc.xml");

  11.         }
复制代码


2. XML 数据量大时加载慢,这个需要调查一下,看有没有解决方案,调研后给您回复。

3. colon spread用xml时正常的方式,现在还是需要解决2的问题
回复 使用道具 举报
wdtlcv
初级会员   /  发表于:2017-2-7 14:18:53
板凳
用SortRange排序是没有问题的。不知道SortRange和SortRows两者有没有性能上的差异。

加载XML时,主要的时间花费应该是在单元格格式的设定上。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-7 15:52:58
地板
SortRange和SortRows 内部实现基本一致的,您根据您的业务去使用就好了。

性能问题已经提交开发那边,看是否有解决方案。
回复 使用道具 举报
wdtlcv
初级会员   /  发表于:2017-2-13 09:22:21
5#
性能问题有眉目了吗?
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-2-13 16:42:54
6#
您好,关于加载XML的性能问题,现在没有好的办法去解决,这个和具体xml的内容有关,如果每个单元格都有自己style那么这些样式都需要反序列化,所以会慢一些。
后续版本会对此进行优化,对于现有版本,建议单元格设置相同样式的时候使用,namestyle,减少重复相同的style
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部