找回密码
 立即注册

QQ登录

只需一步,快速开始

lh8350

论坛元老

33

主题

80

帖子

2万

积分

论坛元老

积分
23275

活字格认证

lh8350
论坛元老   /  发表于:2012-8-9 12:16  /   查看:5892  /  回复:1
sheetView.ClearRange这个方法能判断哪些单元格被锁定了吗?我想实现的是:选中一个区域,判断其中的每个单元格是否是锁定的,锁定的就不删除数据,如果不是锁定的就删除里面的数据,要怎样才能实现呢。我是先锁定了全部的单元格,然后解锁一部分单元格进行操作的。要怎样实现呢?

1 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-8-9 17:44:00
沙发
回复 1楼lh8350的帖子

你好,
ClearRange 方法不能排除 Locked Cell ,我想可以通过循环,逐一 Locked 单元格,判断该单元格是否被 Locked,逐一进行删除。
测试代码:

  1.        private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             int startrow = 0;
  4.             int startcolumn = 0;
  5.             int columncount = 3;
  6.             int rowcount = 3;

  7.             for (int i = startrow; i < rowcount; i++)
  8.             {
  9.                 for (int j = startcolumn; j < columncount; j++)
  10.                 {
  11.                     if (!this.fpSpread1.Sheets[0].Cells[i, j].Locked)
  12.                     {
  13.                         this.fpSpread1.Sheets[0].ClearRange(i, j, 1, 1, false);
  14.                     }
  15.                 }
  16.             }
  17.             if (!this.fpSpread1.Sheets[0].Cells[0,0].Locked)
  18.             {
  19.                 this.fpSpread1.Sheets[0].ClearRange(0, 0, 1, 1, false);
  20.             }
  21.         }

  22.         private void Form1_Load(object sender, EventArgs e)
  23.         {
  24.             //this.fpSpread1.Sheets[0].Cells[0, 0].Locked = true;            
  25.             //this.fpSpread1.Sheets[0].Rows[0].Locked = true;
  26.             for (int i = 0; i < 10; i++)
  27.             {
  28.                 this.fpSpread1.Sheets[0].Cells[0, i].Locked = true;
  29.             }
  30.             this.fpSpread1.Sheets[0].Cells[0, 0].Text = "fdasfdas";
  31.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部