找回密码
 立即注册

QQ登录

只需一步,快速开始

aby913

注册会员

2

主题

5

帖子

81

积分

注册会员

积分
81

活字格认证

最新发帖
aby913
注册会员   /  发表于:2013-7-16 09:34  /   查看:5577  /  回复:6
代码是这样的
private FarPoint.Win.ComplexBorder lineBorder3 = new
            FarPoint.Win.ComplexBorder(new FarPoint.Win.ComplexBorderSide(FarPoint.Win.ComplexBorderSideStyle.ThinLine, Color.Black));

先定义这么一个边框样式变量


然后循环给单元格赋值,并设置边框

大概代码:
for(......)
{
   for(....)
  {
      // 单元格赋值
      // 单元格设置边框
      this.fpSpread1_Sheet1.Cells[i, j].Border = lineBorder3;
   }
}
为何会非常的慢,行数大概100多行,列数32行,结果需要等4分钟以上才能出来,问题主要出在设置边框上面,如果注释掉边框设置,很快就能出来。有没有更好的方法?

6 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-7-16 13:36:00
沙发
回复 1楼aby913的帖子

可以在绘制边框之前挂起重绘,所有设置完成后一次性重绘:

  1. this.fpSpread1.SuspendLayout()。
  2. for(......)
  3. {
  4.    for(....)
  5.   {
  6.       // 单元格赋值
  7.       // 单元格设置边框
  8.       this.fpSpread1_Sheet1.Cells[i, j].Border = lineBorder3;
  9.    }
  10. }
  11. this.fpSpread1.ResumeLayout();
复制代码
回复 使用道具 举报
xut_ycl
注册会员   /  发表于:2013-10-30 16:59:00
板凳
表格设置边框后保存,再次打开很慢呀?求解!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-30 17:07:00
地板
请问你使用的是什么版本,Spread for Winforms 7.0?方便把 XML 发上来查看吗?
回复 使用道具 举报
xut_ycl
注册会员   /  发表于:2013-10-30 17:11:00
5#
目前版本是Spread for Winforms 4.0的,设置单元边框后保存的xml文件中包含了很多的-<Border class="FarPoint.Win.ComplexBorder"> -<Sides> -<Bottom> <Color>Black</Color> <Style>ThinLine</Style> </Bottom> -<Left> <Color>WindowFrame</Color> <Style>None</Style> </Left> -<Right> <Color>Black</Color> <Style>ThinLine</Style> </Right> -<Top> <Color>WindowFrame</Color> <Style>None</Style> </Top> </Sides> </Border>
打开xml时会非常慢!可能要几分钟时间
回复 使用道具 举报
xut_ycl
注册会员   /  发表于:2013-10-30 17:24:00
6#

表格设置边线保存后再次打开非常缓慢(附XML文件)?

表格设置边线保存到xml文件,再次打开xml文件非常缓慢!

Demo.rar

17.93 KB, 下载次数: 410

回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-30 18:08:00
7#
回复 6楼xut_ycl的帖子

xut_ycl 你好,

不好意思,Spread for Winforms 4.0 是比较老的版本,我这边没有测试环境。无法打开你的文件。

由于 XML 格式文件是全特性保存,再添加大量的边框,确实会影响性能。你可以对比下添加边框前后 XML 文件的大小。添加边框后会对每个单元格添加如下标记:

  1. -<Border class="FarPoint.Win.ComplexBorder">
  2. -<Sides>
  3. -<Bottom> <Color>WindowFrame</Color> <Style>ThinLine</Style> </Bottom>
  4. -<Left> <Color>WindowFrame</Color> <Style>ThinLine</Style> </Left>
  5. -<Right> <Color>WindowFrame</Color> <Style>ThinLine</Style> </Right>
  6. -<Top> <Color>WindowFrame</Color> <Style>ThinLine</Style> </Top>
  7. </Sides>
  8. </Border>
复制代码


没有很好的建议提供给你。
是否可以考虑在加载后通过代码绘制边框。

Spread 7.0 在性能和功能上较早期版本都有很大增强:http://www.gcpowertools.com.cn/d ... dforWinForms7v2.zip
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部