找回密码
 立即注册

QQ登录

只需一步,快速开始

gaoge00

论坛元老

14

主题

58

帖子

1万

积分

论坛元老

积分
10186

活字格认证

gaoge00
论坛元老   /  发表于:2012-10-25 17:34  /   查看:6342  /  回复:8
请问Spread4.0,Winform中可否判断单元格是否为指定内容,不是当前单元格变背景色。
例如,出生年月日大于"1990/01/01" 的会员,背景颜色变为红色。

8 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-25 18:00:00
沙发
你好

你这个需求可以参考下面的代码来实现:
  1. FarPoint.Win.Spread.NamedStyle styleCold = new FarPoint.Win.Spread.NamedStyle();

  2. FarPoint.Win.Spread.NamedStyle styleCool = new FarPoint.Win.Spread.NamedStyle();

  3. FarPoint.Win.Spread.NamedStyle styleMild = new FarPoint.Win.Spread.NamedStyle();

  4. FarPoint.Win.Spread.NamedStyle styleWarm = new FarPoint.Win.Spread.NamedStyle();

  5. FarPoint.Win.Spread.NamedStyle styleHot = new FarPoint.Win.Spread.NamedStyle();


  6. styleCold.BackColor = Color.Blue;

  7. styleCold.ForeColor = Color.White;

  8. styleCool.BackColor = Color.Cyan;

  9. styleMild.BackColor = Color.Lime;

  10. styleWarm.BackColor = Color.Yellow;

  11. styleHot.BackColor = Color.Red;


  12. for (int col = 0; col < 6; col++)

  13. {

  14.   fpSpread1.ActiveSheet.SetConditionalFormat(0, col, styleCold, FarPoint.Win.Spread.ComparisonOperator.LessThanOrEqualTo, "32");

  15.   fpSpread1.ActiveSheet.SetConditionalFormat(0, col, styleCool, FarPoint.Win.Spread.ComparisonOperator.Between, "32", "55");

  16.   fpSpread1.ActiveSheet.SetConditionalFormat(0, col, styleMild, FarPoint.Win.Spread.ComparisonOperator.Between, "55", "75");

  17.   fpSpread1.ActiveSheet.SetConditionalFormat(0, col, styleWarm, FarPoint.Win.Spread.ComparisonOperator.Between, "75", "85");

  18.   fpSpread1.ActiveSheet.SetConditionalFormat(0, col, styleHot, FarPoint.Win.Spread.ComparisonOperator.GreaterThan, "85");

  19. }
复制代码
回复 使用道具 举报
gaoge00
论坛元老   /  发表于:2012-10-26 14:10:00
板凳
您好,SetConditionalFormat,ComparisonOperator 这两个方法不存在, 我是4.0版本,C# winform 环境
回复 使用道具 举报
gaoge00
论坛元老   /  发表于:2012-10-26 14:11:00
地板
回复 2楼dof的帖子

您好,SetConditionalFormat,ComparisonOperator 这两个方法不存在, 我是4.0版本,C# winform 环境
回复 使用道具 举报
gaoge00
论坛元老   /  发表于:2012-10-26 16:05:00
5#
回复 2楼dof的帖子

不好意思,看错了现在用的是1.0的版本,没法使用,请问1.0有方法实现吗?
回复 使用道具 举报
gaoge00
论坛元老   /  发表于:2012-10-26 16:32:00
6#
回复 2楼dof的帖子

现在在4.0上试了, 只能改变所在单元格的颜色, 能否改变整行的颜色呢?
还有就是NamedStyle  应该如何使用, 比如说能否给一行使用此种NamedStyle
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-10-26 17:46:00
7#
以上方法不能实现整行颜色改变,如果需要实现整行颜色改变,需要编码实现,比如在修改一个单元格的值之后,判断值的范围,然后修改所在行的颜色

NameStyle使用方法:
  1. Dim backstyle As New FarPoint.Win.Spread.NamedStyle("BlueBack")

  2. backstyle.BackColor = Color.Blue

  3. Dim text1style As New FarPoint.Win.Spread.NamedStyle("OrangeText", "BlueBack")

  4. text1style.ForeColor = Color.Orange

  5. Dim text2style As New FarPoint.Win.Spread.NamedStyle("YellowText", "BlueBack")

  6. text2style.ForeColor = Color.Yellow


  7. FpSpread1.NamedStyles.Add(backstyle)

  8. FpSpread1.NamedStyles.Add(text1style)

  9. FpSpread1.NamedStyles.Add(text2style)

  10. FpSpread1.ActiveSheet.Cells(0,0,4,0).StyleName = "OrangeText"

  11. fpSpread1.ActiveSheet.Cells(0,1,4,1).StyleName = "YellowText"
复制代码
回复 使用道具 举报
gaoge00
论坛元老   /  发表于:2012-10-27 08:12:00
8#
回复 7楼dof的帖子

谢谢,这样能少些很多东西
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-11-1 12:14:00
9#
哈哈,好的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部