找回密码
 立即注册

QQ登录

只需一步,快速开始

ljqlovejmj

银牌会员

6

主题

12

帖子

2154

积分

银牌会员

积分
2154

活字格认证

ljqlovejmj
银牌会员   /  发表于:2013-10-29 14:56  /   查看:5871  /  回复:6
产品版本:Spread7.0 操作系统:win7
问题描述:Spread7.0 里面的单元格怎么能进行补零操作。就是在单元格里输入1,焦点离开后值自动变成00001,求大神讲解,谢谢。还有那个leadingZero不是,那是控制小数前面是否有零表示的。

6 个回复

倒序浏览
ljqlovejmj
银牌会员   /  发表于:2013-10-29 16:03:00
沙发
雅蠛蝶,不要沉啊。。。。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-29 18:41:00
板凳
回复 2楼ljqlovejmj的帖子

不好意思,让你久等了。
需要通过自定义单元格类型实现,请尝试以下代码:

  1. public partial class Form1 : Form
  2.     {
  3.         public Form1()
  4.         {
  5.             InitializeComponent();
  6.         }

  7.         private void Form1_Load(object sender, EventArgs e)
  8.         {
  9.             MyCellType mtype=new MyCellType();
  10.             this.fpSpread1.Sheets[0].DefaultStyle.CellType = mtype;
  11.         }
  12.     }

  13.     public class MyCellType : FarPoint.Win.Spread.CellType.GeneralCellType
  14.     {
  15.         public override string Format(object obj)
  16.         {
  17.             string text = "";
  18.             if (obj == null)
  19.             {
  20.                 return text;
  21.             }
  22.             else if (obj.ToString() == "1")
  23.             {
  24.                 text = "00000" + obj.ToString();
  25.                 return text;
  26.             }
  27.             else
  28.             {
  29.                 return obj.ToString();
  30.             }
  31.         }
  32.     }
复制代码
回复 使用道具 举报
ljqlovejmj
银牌会员   /  发表于:2013-10-30 09:56:00
地板
回复 3楼iceman的帖子

谢谢回复,那这个补零只能用代码实现呗,想要在属性里设置是不可以的?还有,用正则表达式能不能实现。谢谢~
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-10-30 13:53:00
5#
回复 4楼ljqlovejmj的帖子

不好意思,没有内置的属性进行设置,正则也无法实现。
回复 使用道具 举报
ljqlovejmj
银牌会员   /  发表于:2013-10-31 21:30:00
6#
回复 5楼iceman的帖子

设置GeneralCellType里面的FormatString属性,设置成"000000",就可以实现补零,但是如果这列绑定数据源了,那么就不好使了,那这个FormatString是不是在绑定数据源之后就不起作用了?谢谢~
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-11-1 13:57:00
7#
回复 6楼ljqlovejmj的帖子

需要在数据绑定后按列分别设置:

  1.    private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             DataTable dt = new DataTable();
  4.             dt.Columns.Add("col1",typeof(int));
  5.             dt.Columns.Add("col2", typeof(int));

  6.             dt.Rows.Add("1", "12");
  7.             this.fpSpread1.Sheets[0].DataSource = dt;

  8.             FarPoint.Win.Spread.CellType.GeneralCellType gctype = new FarPoint.Win.Spread.CellType.GeneralCellType();
  9.             gctype.FormatString="00000";

  10.             this.fpSpread1.Sheets[0].Columns[0].CellType = gctype;
  11.             this.fpSpread1.Sheets[0].Columns[1].CellType = gctype;
  12.             
  13.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部