找回密码
 立即注册

QQ登录

只需一步,快速开始

dapsjj
初级会员   /  发表于:2016-11-16 13:35  /   查看:14229  /  回复:15
本帖最后由 dapsjj 于 2016-11-16 13:37 编辑

spread显示数据的时候是第一幅图这样的,想要点击一个按钮后清空spread中的数据,达到第二幅图的效果。(清空spread中的数据,值保留标题)请问清空spread中的数据的代码怎么写?

1.png
2.png

15 个回复

倒序浏览
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 13:40:28
沙发
使用 clear 方法,清空一个range
http://sphelp.grapecity.com/webh ... ts.Sheet~clear.html
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-16 13:58:45
板凳

您好,我这里没有clear方法,这个是为啥啊?如图中所示。
3.png
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-16 14:16:16
地板
本帖最后由 dapsjj 于 2016-11-16 14:21 编辑

因为没有clear方法,我使用的是ClearRange方法,但是清空数据后,横竖线都还在,如图1所示,我想把横竖线也给去掉让spread变成不能编辑的状态应该怎么办呢?因为光把数据清除,依然可以对spread单元格进行编辑,所以需要把横竖线也给去掉,使spread变为不可用。想变成图2这样,这个怎么做呢?
1.png
2.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 15:12:08
5#
不好意思,那个链接是spreadjs平台的。
fpSpread1.ActiveSheet.ClearRange(0, 0, 2, 2, false);
最后一个参数设置为false可以删除边框,或者
fpSpread1.ActiveSheet.Cells[0, 0, 2, 2].Border = new FarPoint.Win.EmptyBorder();

Protect可以保护sheet不让编辑。
            fpSpread1.ActiveSheet.Protect = true;
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-16 15:49:21
6#
本帖最后由 dapsjj 于 2016-11-16 15:51 编辑
dexteryao 发表于 2016-11-16 15:12
不好意思,那个链接是spreadjs平台的。
fpSpread1.ActiveSheet.ClearRange(0, 0, 2, 2, false);
最后一 ...

               grdMain.ActiveSheet.ClearRange(0, 0, grdMain.ActiveSheet.Rows.Count, grdMain.ActiveSheet.ColumnCount, false)不行啊版主,这个false参数中是这么写的dataOnly,我写成false依然显示边框。看起来不是取消边框的。如图所示。
1.png
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-16 16:05:31
7#
dexteryao 发表于 2016-11-16 15:12
不好意思,那个链接是spreadjs平台的。
fpSpread1.ActiveSheet.ClearRange(0, 0, 2, 2, false);
最后一 ...

代码grdMain.ActiveSheet.Protect = true;
但是依然可以编辑:
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-16 16:05:35
8#
dexteryao 发表于 2016-11-16 15:12
不好意思,那个链接是spreadjs平台的。
fpSpread1.ActiveSheet.ClearRange(0, 0, 2, 2, false);
最后一 ...

代码grdMain.ActiveSheet.Protect = true;
但是依然可以编辑:
1.png
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-11-16 17:36:58
9#
您完整试下,下面代码,我这里测试是好着的
  1.             fpSpread2.ActiveSheet.ClearRange(0, 0, 2, 2, false);
  2.             fpSpread2.ActiveSheet.Cells[0, 0, 2, 2].Border = new FarPoint.Win.EmptyBorder();
  3.             fpSpread2.ActiveSheet.Cells[0, 0, 2, 2].Locked = true;
  4.             fpSpread2.ActiveSheet.Protect = true;
  5.             FarPoint.Win.Spread.GridLine gdln = new FarPoint.Win.Spread.GridLine(FarPoint.Win.Spread.GridLineType.None);
  6.             fpSpread2.ActiveSheet.HorizontalGridLine = gdln;
  7.             fpSpread2.ActiveSheet.VerticalGridLine = gdln;
复制代码
回复 使用道具 举报
dapsjj
初级会员   /  发表于:2016-11-17 10:42:57
10#
本帖最后由 dapsjj 于 2016-11-17 10:44 编辑
dexteryao 发表于 2016-11-16 17:36
您完整试下,下面代码,我这里测试是好着的

您好,我想把spread中的行和列都清了,但是代码这样写却错了,请问哪里有问题呢?
  1. grdMain.ActiveSheet.Cells[0, 0, grdMain.ActiveSheet.Rows.Count - 1, grdMain.ActiveSheet.ColumnCount - 1].Border = new FarPoint.Win.EmptyBorder();//双击后清空grdMain边框
  2.                     grdMain.ActiveSheet.Cells[0, 0, grdMain.ActiveSheet.Rows.Count - 1, grdMain.ActiveSheet.ColumnCount - 1].Locked = true;
  3.    
复制代码
grdMain.ActiveSheet.Rows.Count - 1不是取的最大行嘛?grdMain.ActiveSheet.ColumnCount - 1不是取的最大列嘛?
2016-11-17_104116.png
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部