找回密码
 立即注册

QQ登录

只需一步,快速开始

onroader

初级会员

35

主题

85

帖子

284

积分

初级会员

积分
284
onroader
初级会员   /  发表于:2018-2-27 15:17  /   查看:3764  /  回复:6
一个报表有30多个表页,报表加载要10多分钟。
有哪些优化策略????

6 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-27 17:09:54
沙发
你具体用的哪个版本?首先建议使用最新版本,另外您加载workbook是导入的xml还是excel ,建议提供下模板我们这边测试下
回复 使用道具 举报
onroader
初级会员   /  发表于:2018-2-27 17:19:18
板凳
用的是7,暂时不考虑升级。workbool导入的是XML。
回复 使用道具 举报
onroader
初级会员   /  发表于:2018-2-27 17:23:50
地板
目前的做法是把报表生成一个XML文件保存在数据库。加载的时候把XML文件下载给报表客户端加载。

是否可以把每个表页生成xml文件进行单独保存,有几个表页就保存几个XML文件。
加载的时候如果表页过多,先加载3(待定)个,后面的表页只加载一个空的。
后面的表页通过用户表页切换事件进行加载。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-27 18:09:28
5#
sheet 有saveXML的方法可以单独保存xml。可以实现您的需求。
加载xml这里没有可以优化的,就一个open的接口,直接就打开了。
回复 使用道具 举报
onroader
初级会员   /  发表于:2018-2-28 10:50:41
6#
XML文件大小有140多MB。查看XML内容发现大量相同的样式节点。
如何将XML文件发给你们,帮忙分析一下如何能避免产生重复的样式节点。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-2-28 15:26:31
7#
从您描述来看,一方面使用的是比较老的版本,另一方面本身XML就很多。
想避免XML文件过大可以对于有相同样式的的单元个设置时候进行处理。
有以下几个方面:
1. 整行整列的样式,可以直接设置在行列上,不要循环给每个单元格设置。
2. 使用NamedStyle ,这个类似css的class。定义一个style,起个名字,单元格直接引用这个名字。


FarPoint.Win.Spread.NamedStyle ns = new FarPoint.Win.Spread.NamedStyle("StyleData", "DataAreaDefault");
ns.BackColor = Color.LightBlue;
fpSpread1.NamedStyles.Add(ns);
fpSpread1.ActiveSheet.Cells[0, 0].StyleName = "StyleData";
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部