zysfaithboy 发表于 2014-11-17 12:17:00

spread for silverlight 复制sheet有什么好的方法

功能上需要实现对用spread加载的一个Exl文件该文件里有一个现有的Sheet页作被复制对象,先要实现多次Sheet页复制功能(样式、数值都要被复制)有什么好方法么?
我尝试用Save/OpenXml方式实现,序列化的速度很好但是反序列化的时间太长了一个页复制需要30S,能否有方法提高效率?

iceman 发表于 2014-11-17 15:27:00

回复 1楼zysfaithboy的帖子

你好,

请问导出的 Sheet 有多少数据量,最好能够把 Excel 上传到论坛我们看下是否有优化方法。

如果是公式或者格式过多,可能没有什么更好的办法来优化。

谢谢

zysfaithboy 发表于 2014-11-17 16:22:00

回复 2楼iceman的帖子

好的 文件里面是一个测试表 进行复制的代码如下   
public Worksheet CopySheet (Worksheet sheet,string newName)
      {
             Worksheet newSheet = null;
            if (sheet != null)
            {
            
                MemoryStream ms = new MemoryStream();
                XmlWriter writer = XmlWriter.Create(ms);
                sheet.SaveXml(writer);
                writer.Close();
            
                ms.Position = 0;
                XmlReader reader = XmlReader.Create(ms);
                newSheet = new Worksheet(newName);
                newSheet.OpenXml(reader);
                reader.Close();
            }
            return newSheet;
      }

iceman 发表于 2014-11-17 17:44:00

回复 3楼zysfaithboy的帖子

感谢反馈,调查后给出进一步结果。

iceman 发表于 2014-11-19 13:45:00

回复 4楼iceman的帖子

使用你提供的 Excel 我制作了一个测试Demo,没有重现问题,加载时间1~2s。请下载测试看能否重现问题:
VS2013+Spread 4.0.20132.342 + C#:


谢谢

zysfaithboy 发表于 2014-11-26 15:17:00

回复 5楼iceman的帖子

感谢 问题已经解决版本问题 之前的太老了 引用V4版本后复制200个在3S左右达到预期效果

iceman 发表于 2014-11-27 09:28:00

回复 6楼zysfaithboy的帖子

好的,感谢您的反馈。
页: [1]
查看完整版本: spread for silverlight 复制sheet有什么好的方法