找回密码
 立即注册

QQ登录

只需一步,快速开始

baigenliang

中级会员

42

主题

126

帖子

972

积分

中级会员

积分
972

活字格认证

baigenliang
中级会员   /  发表于:2015-5-11 16:04  /   查看:10266  /  回复:10
当一个sheet中如果有多个公式的时候,在填写完数据离开后非常慢。
详细见附件中的模板里随便选择一个记录sheet都会出现该问题。
由于farpoint的dll太大了,我给删了暂时。

spreadBasicFormal.rar

69.78 KB, 下载次数: 403

10 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-5-11 17:35:00
沙发
回复 1楼baigenliang的帖子

Demo 已经查收,正在调查中,稍后给你进一步反馈。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-11 20:07:00
板凳
回复 1楼baigenliang的帖子
建议1:请问当前的模板是由Excel导入进来的吗?我查看模板中有很多单元格类型为 TextCellType,如果不是项目要求设置,请更改为 GeneralCellType。
建议2:提供一个缓解一次性性能的方法,使用按需加载进行分批显示,请修改 WebForm2.aspx Load 方法如下:

  1.         protected void Page_Load(object sender, EventArgs e)
  2.         {
  3.             if (!IsPostBack)
  4.             {
  5.                 for (int i = 0; i < FpSpread2.Sheets.Count; i++)
  6.                 {
  7.                     FpSpread2.Sheets[i].AllowPage = false;
  8.                     FpSpread2.Sheets[i].PageSize = 70;
  9.                     this.FpSpread2.Sheets[i].Protect = true;

  10.                     //按需加载
  11.                     this.FpSpread2.Sheets[i].AllowLoadOnDemand = true;
  12.                     this.FpSpread2.Sheets[i].LoadInitRowCount = 25;
  13.                     this.FpSpread2.Sheets[i].LoadRowIncrement = 5;
  14.                     this.FpSpread2.Sheets[i].LoadOnDemandMode = FarPoint.Web.Spread.LoadOnDemandMode.Background;
  15.                     this.FpSpread2.Sheets[i].LoadOnDemandTriggerMode = FarPoint.Web.Spread.LoadOnDemandTriggerMode.Timed;
  16.                     this.FpSpread2.Sheets[i].LoadOnDemandInterval = 100;
  17.                 }

  18.                 DefaultSheetDataModel dataModel = FpSpread2.ActiveSheetView.DataModel as FarPoint.Web.Spread.Model.DefaultSheetDataModel;
  19.                 if (dataModel != null)
  20.                 {
  21.                     dataModel.AddCustomFunction(new CubeFunctionInfo());
  22.                     dataModel.AddCustomFunction(new FoundOffFunctionInfo());
  23.                     dataModel.AddCustomFunction(new DevisionFunctionInfo());
  24.                     dataModel.AddCustomFunction(new Devision2FunctionInfo());
  25.                     dataModel.AddCustomFunction(new ChangeRateFunctionInfo());
  26.                     dataModel.AddCustomFunction(new Avg2DirectFunctionInfo());
  27.                     dataModel.AddCustomFunction(new Avg2JudgeFunctionInfo());
  28.                     dataModel.AddCustomFunction(new Avg3DirectFunctionInfo());
  29.                     dataModel.AddCustomFunction(new Avg3JudgefunctionInfo());
  30.                     dataModel.AddCustomFunction(new Avg3ZJZjudgefunctionInfo());
  31.                     dataModel.AddCustomFunction(new Avg3AvgJudgefunctionInfo());
  32.                 }

  33.                 this.FpSpread2.ClientAutoCalculation = true;
  34.                 // FpSpread2.ActiveSheetView.SetFormula(0, 0, "CUBE(CUBE(B1))");
  35.                 FpSpread2.ActiveSheetView.DataModel = dataModel;
  36.             }
  37.         }
复制代码
回复 使用道具 举报
baigenliang
中级会员   /  发表于:2015-5-12 10:19:00
地板
您好,我这边按你们提供的两种建议都改过了,不过效果还是不明显啊。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-12 13:36:00
5#
回复 4楼baigenliang的帖子

Demo:

spreadBasicFormal.zip (310.72 KB, 下载次数: 419)
回复 使用道具 举报
baigenliang
中级会员   /  发表于:2015-5-12 15:16:00
6#
你好,您试的是切换sheet吗?我们主要是说切换单元格啊,我们在单元格里输入了数据后离开这个单元格都需要等好长时间才能操作其他的。况且切换sheet我也没有看到有明显的变化啊。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-12 15:24:00
7#
回复 6楼baigenliang的帖子

你好,
我会把示例发送给开发人员查看,看是否有优化的可能性,由于产品组在美国所以受到时差和问题处理先后影响,预计1~2个工作日内有反馈。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-12 16:44:00
8#
回复 6楼baigenliang的帖子

请尝试以下代码:

  1.                 this.FpSpread2.RenderCSSClass = true;
  2.                 this.FpSpread2.ViewStateMode = System.Web.UI.ViewStateMode.Disabled;
复制代码
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-12 17:57:00
9#
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-5-12 18:23:00
10#
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部